int fun(char s[],char t[]) { int i=-0; while(s[i]==t[i]&&s[i]!='\0') {i++;} return s[i]=='\0'&&t[i]=='\0'; }的早哟
时间: 2023-10-20 10:05:57 浏览: 59
这段代码是有误的,它并没有完整的语句。我猜测你可能想要实现字符串比较的功能,但是代码缺少了结束语句,无法正确运行。
正确的字符串比较函数应该是这样的:
```c++
int strcmp(const char *s1, const char *s2);
```
如果你想自己实现一个字符串比较函数,可以参考下面的代码:
```c++
int strcmp(const char *s1, const char *s2) {
int i = 0;
while (s1[i] != '\0' && s2[i] != '\0') {
if (s1[i] != s2[i]) {
return s1[i] - s2[i];
}
i++;
}
return s1[i] - s2[i];
}
```
这个函数会逐个比较两个字符串的字符,如果发现不同的字符,就会返回它们的 ASCII 码之差。如果两个字符串完全相同,就会返回 0。
相关问题
int fun(char s[],char t[]) { int i=-0; while(s[i]==t[i]&&s[i]!='\0') {i++;} return s[i]=='\0'&&t[i]=='\0'; }的作用
这段代码不完整,缺少了右括号和分号,同时变量 i 的赋值语句中多了一个负号。如果修正这些语法错误,这段代码的功能应该是比较字符串 s 和 t 的前缀是否相同,如果相同则返回相同前缀的长度,否则返回 0。
修正后的代码如下:
```c
int fun(char s[], char t[]) {
int i = 0;
while (s[i] == t[i] && s[i] != '\0') {
i++;
}
return i;
}
```
这个函数会从字符串 s 和 t 的第一个字符开始比较,直到遇到不同的字符或者字符串结束符 '\0'。如果在这个过程中两个字符串一直相同,就会一直增加 i 的值,直到遍历完两个字符串或者遇到不同的字符。最后返回 i 的值,即相同前缀的长度。
#include <stdio.h> void fun(char s[], char t) { int i = 0; while (s[i]) { if (s[i] == t) s[i] = t - 'a' + 'A'; i++; } } int main() { char str[100] = "abcdefg", c = 'd'; fun(str, c); printf("%s\n", str); return 0; }解答程序
这个程序的功能是将字符串中所有与给定字符相同的小写字母转换为大写字母。具体来说,函数`fun`接受两个参数,一个字符串`s`和一个字符`t`,函数会遍历字符串`s`中的所有字符,如果字符与`t`相同且为小写字母,就将其转换为对应的大写字母。函数`main`中定义了一个字符串`str`和一个字符`c`,将字符串`"abcdefg"`赋值给`str`,将字符`'d'`赋值给`c`,然后调用`fun(str, c)`函数,最后打印输出字符串`s`的值。执行结果为:
```
abCDefg
```
其中,字符`'d'`被转换成了大写字母`'D'`。