char *fun ( char *s, char *t) { /**********Program**********/ int i=0,count1=0,count2=0; while(s[i]!='\0') { count1++; } i=0; while(t[i]!='\0') { count2++; } if(count1<count2)return t; return s; /********** End **********/ }这串代码比较字符串的长度有问题吗
时间: 2023-06-29 13:10:12 浏览: 92
编写一个程序,求字符串的长度
5星 · 资源好评率100%
这段代码比较字符串长度有问题,因为在计算字符串长度时,虽然使用了循环来遍历字符串,但是没有对循环变量 `i` 进行自增操作,导致程序无法终止,会一直死循环下去。
正确的代码应该是这样的:
```
char *fun(char *s, char *t) {
int count1 = 0, count2 = 0;
while (s[count1] != '\0') {
count1++;
}
while (t[count2] != '\0') {
count2++;
}
if (count1 < count2) {
return t;
}
return s;
}
```
这里使用了数组下标来遍历字符串,同时在循环中对计数器变量进行自增操作,避免了死循环的问题。
阅读全文