问题:求输入字符的个数 不用strlen函数 求助大佬!
#include <stdio.h>#define MAX1024
int main()
{
char str;
char *target=str;
char ch;
int length=0;
printf("请输入一个字符串:");
fgets(str,MAX,stdin);
while(*target++!='\0')
{
ch=*target++;
if((int)ch<0)
{
target+=1;
}
length++;
}
printf("你总共输入了%d个字符!\n",length-1);
return 0;
}
为什么这样写不能得到正确答案呢?? #include <stdio.h>
#define MAX1024
int main()
{
char str;
char ch;
int length=0;
printf("请输入一个字符串:");
fgets(str,MAX,stdin);
char *target=str; // 首先指针要在字符串赋完值之后再指向它
while(*target!='\0') // 这里指针后移,但循环里面也有一个自增运算符 ,要把这个去掉 ,其实想想很好理解
{
ch=*target++;
if((int)ch<0)
{
target+=1;
}
length++;
}
printf("你总共输入了%d个字符!\n",length-1);
return 0;
} 巴巴鲁 发表于 2021-2-25 15:25
懂了,非常感谢 #include <stdio.h>
#define MAX1024
void main(){
char str;
int length = 0;
printf("请输入一个字符串: ");
gets(str);
char *string = str;
while(*(string++) != '\0'){
length ++;
}
printf("str is %s, and length is %d",str,length);
}
页:
[1]