C语言编程题
1个回答
关注
展开全部
以下是C语言代码实现:#include #include int main() { char str1[51], str2[51]; int count[128] = {0}; // 记录字符串1中各字符出现次数 // 读入两个字符串 scanf("%s", str1); scanf("%s", str2); // 统计字符串1中各字符出现次数 for (int i = 0; i < strlen(str1); i++) { count[str1[i]]++; } // 删除字符串1中所有在字符串2中出现的字符 for (int i = 0; i < strlen(str2); i++) { count[str2[i]] = 0; } // 输出剩余的字符 int flag = 0; // 标记是否有剩余的字符 for (int i = 0; i < 128; i++) { if (count[i] != 0) { printf("%c", i); flag = 1; } } if (flag == 0) { printf("Empty"); } printf("\n"); return 0;}
咨询记录 · 回答于2023-04-09
C语言编程题
你把问题用文字复制给我,手机不好看
[问题描述]编写程序实现删除字符串1中所有出现在字符串2中的字符,然后按照字符ASCII码从小到大的顺序输出字符串1中剩余的字符。注意:两字符串都不含空格。[输入形式]从控制台输入两个字符串(在两行上),两个字符串的长度都不超过50个。[输出形式]按照ASCII码从小到大的顺序向控制台输出剩下的字符串,若没有剩下的字符,则输出字符串Empty。
以下是C语言代码实现:#include #include int main() { char str1[51], str2[51]; int count[128] = {0}; // 记录字符串1中各字符出现次数 // 读入两个字符串 scanf("%s", str1); scanf("%s", str2); // 统计字符串1中各字符出现次数 for (int i = 0; i < strlen(str1); i++) { count[str1[i]]++; } // 删除字符串1中所有在字符串2中出现的字符 for (int i = 0; i < strlen(str2); i++) { count[str2[i]] = 0; } // 输出剩余的字符 int flag = 0; // 标记是否有剩余的字符 for (int i = 0; i < 128; i++) { if (count[i] != 0) { printf("%c", i); flag = 1; } } if (flag == 0) { printf("Empty"); } printf("\n"); return 0;}
需要代码思路吗?
要的谢谢
代码思路如下:1.定义两个字符串和一个数组 count,数组 count 用于记录字符串1中各字符出现的次数。2.读入两个字符串。3.遍历字符串1,统计各字符出现的次数。4.遍历字符串2,将字符串1中所有在字符串2中出现的字符的计数设为0。5.遍历数组 count,输出所有计数不为0的字符。6.如果没有剩余的字符,输出字符串 Empty。注意:由于题目中要求按照ASCII码从小到大输出字符,因此需要将数组 count 的大小定义为128,因为ASCII码的取值范围是0~127。