投入就放过 发表于 2021-2-25 15:14:18

问题:求输入字符的个数 不用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;
}

为什么这样写不能得到正确答案呢??

巴巴鲁 发表于 2021-2-25 15:25:10

#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:40:08

巴巴鲁 发表于 2021-2-25 15:25


懂了,非常感谢

rororoya 发表于 2021-2-25 15:49:07

#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]
查看完整版本: 问题:求输入字符的个数 不用strlen函数 求助大佬!