本帖最后由 jackz007 于 2022-9-8 14:03 编辑
这些代码 while(1)
{
if(*p == '\0')
{
break;
}
// 这里答案用了强转,我的这个直接比较会不会有问题,哪个更好一点
完全可以改为: while(* p)
{
// 这里答案用了强转,我的这个直接比较会不会有问题,哪个更好一点
当然了,其它的代码可以照旧。
下面是我修改的简化版本#include <stdio.h>
#define MAX 1024
int main(void)
{
// 设计一个可以统计中文字符以及中英文混合字符的程序
char str[MAX] ;
int i , count ;
printf("请输入一个字符串:") ;
fgets(str, MAX, stdin) ;
for(count = i = 0 ; str[i] ; count ++ , i ++) if(str[i] < 0) i ++ ;
printf("您总共输入了 %d 个字符\n" , count - 1) ;
}
编译、运行实况:D:\[00.Exerciese.2022]\C>g++ -o x x.c
D:\[00.Exerciese.2022]\C>x
请输入一个字符串:我喜欢 FishC!
您总共输入了 10 个字符
D:\[00.Exerciese.2022]\C>
|