文刀女郎 发表于 2020-5-31 15:20:06

获取字符串的长度 —— strlen 函数

获取字符串的长度 —— strlen 函数
我用的是if,但是输出却只能是 1个字符,不知道错在哪里,请教一下大家。(答案用的是while)

#include<stdio.h>
int main()
{
        char str;
        char* target = str;
        printf("请输入一个字符串:");
        fgets(str, 100, stdin);
        int i=0 ;
        if (*target++ != '\0')
        {
                i++;
       }
        printf("您一共输入了%d个字符!", i);
        return 0;
}

正确的代码

#include<stdio.h>
int main()
{
        char str;
        char* target = str;
        printf("请输入一个字符串:");
        fgets(str, 100, stdin);
        int i=0 ;
        while (*target++ != '\0')
        {
                i++;
       }

        printf("您一共输入了%d个字符!", i-1);
        return 0;
}

KevinHu 发表于 2020-5-31 15:23:32

if只是判断一次,而while是在条件为真的时候一直执行下面的代码段

qiuyouzhi 发表于 2020-5-31 15:36:15

if不是循环

BIYU 发表于 2020-5-31 15:36:47

if是判断语句,while是一个循环语句,区分一下

xiaosi4081 发表于 2020-5-31 15:38:25

if只判断一次

chxchxkkk 发表于 2020-6-1 09:56:34

while是一个字符一个字符循环,直到字符串末尾的'\0'停止
页: [1]
查看完整版本: 获取字符串的长度 —— strlen 函数