dele函数的功能:对给定的字符串,去掉重复的字符与字符串中的空格后,按照字符ASCII码顺序从小到大排序后输出。
函数接口定义:
void dele(char arr[]);
裁判测试程序样例:
#include<stdio.h>
#include"string.h"
void dele(char arr[]);
int main(void)
{
char strA[81];
gets(strA);
dele(strA);
puts(strA);
return 0;
}
/* 请在这里填写答案 */
输入样例:
abcd efg abc fH 3 2 1
结尾无空行
输出样例:
123Habcdefg
结尾无空行
代码如下:
void dele(char arr[]) { ?? ?int i , j , k; ?? ?for(i = j = 0;arr[i] != '\0';i++) ?? ?{ ?? ??? ?if(arr[i] != ' ')arr[j++] = arr[i]; ?? ?} ?? ?arr[j] = '\0';//删除重复字符? ?? ?i = 0; ?? ?j = 0; ?? ?k = 0; ?? ?while(arr[i] != '\0')//遍历删除重复字符? ?? ?{ ?? ??? ?j = i + 1; ?? ??? ?while(arr[j] != '\0') ?? ??? ?{ ?? ??? ??? ?if(arr[j] == arr[i]) ?? ??? ??? ?{ ?? ??? ??? ??? ?k = j; ?? ??? ??? ??? ?while(arr[k] != '\0') ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?arr[k] = arr[k + 1]; ?? ??? ??? ??? ??? ?k++; ?? ??? ??? ??? ?} ?? ??? ??? ??? ?arr[k] = '\0'; ?? ??? ??? ??? ?j--; ?? ??? ??? ?} ?? ??? ??? ?j++; ?? ??? ?} ?? ??? ?i++; ?? ?} ?? ?int lenth = strlen(arr); ?? ?for(i = 0;i < lenth;i++)//按a码排序? ?? ?{ ?? ??? ?for(j = 0;j < lenth;j++) ?? ??? ?{ ?? ??? ??? ?if(arr[j] > arr[i]){ ?? ??? ??? ??? ?int t = arr[j]; ?? ??? ??? ??? ?arr[j] = arr[i]; ?? ??? ??? ??? ?arr[i] = t; ?? ??? ??? ?} ?? ??? ?} ?? ?} }
|