c - 我试图用 C 语言编写一个简单的程序来计算字符串中 char 的数量。但它只计算第一个单词,如果我留下任何空格它就会停止
问题描述
我试图用 C 语言编写一个简单的程序来计算字符串中 char 的数量。但它只计算第一个单词,如果我留下任何空格它就会停止
#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;
}
推荐阅读
- javascript - 检查 .match() 结果是否不为空
- python - 循环获取多位作者的隶属关系信息
- javascript - 如何在 CodeIgniter 中使用 JavaScript 设置 PHP cookie
- jenkins - 如何从 Jenkins 声明式管道中的文本文件填充 ChoiceParameter?
- java - 检查项目是否已存在于数据库中
- python - 如何根据先前的单元格值优化更新单元格/如何优雅地将单元格的值传播到其他单元格?
- javascript - 如何在不访问源代码的情况下从 webpack 条目编译输出中提取块
- python - 未找到 TensorFlow codart64_101.dll
- python - Django:UpdateView,创建另一个以前的图像
- powershell - Powershell - Write-Output 生成带有 BOM 字符的字符串