c - 使用while循环计算C中不包括空格的字符
问题描述
我正在尝试使用 while 循环计算用户作为输入的字符数,但由于某种原因,输出计数总是比预期值多一。(我是新手,所以请不要因此而讨厌我。)
这是我的代码:
#include <stdio.h>
#include <string.h>
int main() {
int len,i;
char sttr[29];
fgets(sttr,29,stdin);
len = 0;
i=0;
while(sttr[i] != '\0'){
if (sttr[i] != ' '){
len++;
}
i++;
}
printf("%d\n",len);
}
解决方案
该fgets
函数读入一行文本并存储该文本,包括换行符(如果有空间)。
因此,由于换行符,输出又多了一个。
推荐阅读
- android - sqlite 按 WHERE 首先排序
- terraform - 如何使用 Terraform 的 kubernetes_service 输出 node_port 值?
- php - 我想要以下结果: $name = 'Doron'; $email = 'doron@myemail.com'; $电话='0501234567';
- php - base64 图像文件在上传到 php 服务器时损坏
- python - 当前工作线程 multiprocessing.pool.ThreadPool 的唯一 ID
- google-apps-script - 将电子邮件转发给收件人的 Google 脚本
- javascript - 从 Firebase 响应嵌套 JSON 对象获取键/值对
- r - R data.table 并行逐行操作
- macos - “/dev/disk1s3”和“/dev/rdisk1s3”之间的区别
- ssl - ERR_SSL_VERSION_OR_CIPHER_MISMATCH 从 AWS API Gateway 到 Lambda