解释一下while(str[i]!='\0') { if((str[i]>='a' && str[i]<='z') || (str[i]>='A' && str[i]<='Z')) {
时间: 2023-03-15 07:33:31 浏览: 32
while(str[i]!=0) { 如果str[i]大于等于a,且小于等于z,就做下面的事情: if((str[i]>=a && str[i]<=z) { // do something } i++; } 这句代码的意思是,当str[i]不等于0时,检查str[i]是否大于等于a且小于等于z,如果是,就执行后面的(// do something)代码,然后i递增。
相关问题
while(str[i]!='/0')
这段代码使用了一个while循环来判断一个字符串是否结束。但是,应该是`'\0'`而不是`'/0'`,因为`'\0'`是字符串的结束符。另外,`i`应该是先初始化为0,例如:`int i = 0;`。完整的代码应该是这样的:
```
int i = 0;
while(str[i] != '\0') {
// do something
i++;
}
```
输入一个字符串,统计其中最长的单词并输出。 #include <stdio.h> int findLongest( char str[] ); int main() { char sArr[100] = { 0 }; int loc, i; gets(sArr); loc = findLongest(sArr) ; for (i = loc; sArr[i] != ' ' && sArr[i] != '\0'; i++) putchar(sArr[i]); return 0; } int findLongest( char str[] ) { int i = 0, Loc = 0, len = 0, lLoc = 0; while (str[i] != '\0') { while (str[i] == ' ') i++; lLoc = i; while (str[i] != ' ' && str[i] != '\0') ; if (i -lLoc > len) { ; Loc = lLoc; } } ; } ###输入样例 This is a C Program ###输出样例 Program
输出样例应该是 "Program" 而不是 "Program ",最后的空格不应该输出。另外,findLongest函数中缺少返回值,需要将最长单词的起始位置Loc返回给主函数。下面是修改后的代码:
```
#include <stdio.h>
int findLongest(char str[]);
int main()
{
char sArr[100] = {0};
int loc, i;
gets(sArr);
loc = findLongest(sArr);
for (i = loc; sArr[i] != ' ' && sArr[i] != '\0'; i++)
putchar(sArr[i]);
return 0;
}
int findLongest(char str[])
{
int i = 0, Loc = 0, len = 0, lLoc = 0;
while (str[i] != '\0')
{
while (str[i] == ' ')
i++;
lLoc = i;
while (str[i] != ' ' && str[i] != '\0')
i++;
if (i - lLoc > len)
{
len = i - lLoc;
Loc = lLoc;
}
}
return Loc;
}
```