微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我试图用 C 编写一个简单的程序来计算字符串中的字符数但它只计算第一个单词,如果我留下任何空间,它就会停止

如何解决我试图用 C 编写一个简单的程序来计算字符串中的字符数但它只计算第一个单词,如果我留下任何空间,它就会停止

我尝试用 C 编写一个简单的程序来计算字符串中的字符数。但它只计算第一个单词,如果我留下任何空间,它就会停止

#include <stdio.h>

int main() {
    char str1[100];
    int i = 0,count = 0;
    printf("enter string:\n");
    scanf("%s",str1);
    while (str1[i] != '\0') {
        i++;
        count++;
    }
    printf("total number of char %d",count);
    return 0;
}

解决方法

scanf("%s",str1) 读取单个单词并将分隔符(任何空格序列)和输入行的其余部分留在 stdin 缓冲区中。如果要计算完整输入行中的字符数,请使用 fgets() 读取完整行并在除字符串结尾 ('\n') 之外的换行符 ('\0') 处停止}).

这是修改后的版本:

#include <stdio.h>

int main() {
    char str1[100];
    int i;

    printf("enter string:\n");
    if (fgets(str1,sizeof str1,stdin)) {
        for (i = 0; str1[i] != '\0'; i++) {
            if (str[i] == '\n') {
                str[i] = '\0';
                break;
            }
        }
        printf("total number of chars: %d\n",i);
    }
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。