习题:指针和数组,获取字符串长度
#include <stdio.h>#define MAX 1024
int main() {
char str;
int i, count = 0;
printf("请输入一个字符串:");
fgets(str, MAX, stdin);
for (i = 0; i < MAX; i++);//for循环这里感觉没啥问题,但是不管输出几个字符,结构都是1;其次吧while语句,改为if(str == '\n'){break;}会报错;
{
while (str == '\n') {
break;
}
count = count + 1;
}
printf("你总共输入了%d个字符!\n", count);
return 0;
} 本帖最后由 jackz007 于 2022-9-9 16:00 编辑
#include <stdio.h>
#define MAX 1024
int main(void)
{
char str ;
int count ;
printf("请输入一个字符串:") ;
fgets(str , MAX , stdin) ;
for(count = 0 ; str != '\n' ; count ++);
printf("你总共输入了 %d 个字符!\n", count) ;
}
编译、运行实况:
D:\\C>g++ -o x x.c
D:\\C>x
请输入一个字符串:I love FishC !
你总共输入了 14 个字符!
D:\\C> jackz007 发表于 2022-9-9 15:58
编译、运行实况:
大佬,我感觉我的那个也没啥问题啊,为啥输出的字符数一直是1 阿亮不减肥 发表于 2022-9-9 16:06
大佬,我感觉我的那个也没啥问题啊,为啥输出的字符数一直是1
#include <stdio.h>
#define MAX 1024
int main()
{
char str ;
int i , count = 0 ;
printf("请输入一个字符串:") ;
fgets(str, MAX, stdin) ;
for (i = 0 ; i < MAX ; i ++) ;//这是一个什么都不做的空循环,循环结束的时候,i = MAX
{
while (str == '\n') { // 当 str == '\n' 的时候进行循环???
break; // 在循环体内 break???你到底想干什么???
}
count = count + 1 ; // 这条语句只执行一次,所以,count 自然 = 1
}
printf("你总共输入了%d个字符!\n", count);
return 0;
} 阿亮不减肥 发表于 2022-9-9 16:06
大佬,我感觉我的那个也没啥问题啊,为啥输出的字符数一直是1
认真一点么
for (i = 0; i < MAX; i++); //for循环这里感觉没啥问题,但是不管输出几个字符,结构都是1;其次吧while语句,改为if(str == '\n'){break;}会报错; jackz007 发表于 2022-9-9 16:13
明白错在哪里了;for循环哪里打了个;直接循环结束了;把while改成if就没问题了;break跳出循环,是跳出while循环的,当时脑子热了把while当初条件判断来用了; 人造人 发表于 2022-9-9 16:14
认真一点么
for (i = 0; i < MAX; i++); //for循环这里感觉没啥问题,但是不管输出几个字 ...
确实刚发现多打了一个分号;练习的时候{:9_227:}
页:
[1]