现有一字符串 char str1[]=”SMUComputer”,主函数中输入另一个相同长度的测试字符串str2,要求编写一个函数int Differ(char s1[],char s2[]),比较str1和str2中不同字符的个数,并在主函数中输出结果。(要求不能使用全局变量,不能使用标准库函数)
时间: 2024-02-20 22:58:37 浏览: 13
好的,我可以帮你解决这个问题。下面是代码实现:
```c
#include <stdio.h>
int Differ(char s1[], char s2[]) {
int count = 0;
for (int i = 0; s1[i] != '\0'; i++) {
if (s1[i] != s2[i]) {
count++;
}
}
return count;
}
int main() {
char str1[] = "SMUComputer";
char str2[12];
printf("请输入一个长度为 %d 的字符串:", sizeof(str1) / sizeof(str1[0]) - 1);
scanf("%s", str2);
int result = Differ(str1, str2);
printf("不同字符的个数为:%d", result);
return 0;
}
```
函数 `Differ` 的实现非常简单,就是遍历两个字符串,如果对应位置的字符不同,那么计数器加 1。最后返回计数器的值。
在 `main` 函数中,首先定义了一个字符串 `str1`,然后让用户输入一个和 `str1` 长度相同的字符串 `str2`。接着调用函数 `Differ` 来计算 `str1` 和 `str2` 中不同字符的个数,并将结果输出。
注意,为了避免使用全局变量,这里将 `str2` 的长度(包括结尾的空字符)设置为 12,即 `sizeof(str1) / sizeof(str1[0])`,因为 `str1` 的长度为 11。如果用户输入的字符串超过了 11 个字符,可能会导致程序出错。