欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

gets()的一个疑问 训练题目:统计字母个数

程序员文章站 2022-07-15 09:06:29
...

这个是我在做题的时候碰到的。
先看看一下原题:
【问题描述】对任意输入一个字符串A,数一数里面包含了多少个字母,输出个数。
如:输入 5df*8e7d4+fe45d
输出 zimu:7
下面是我一开始的程序:

#include<bits/stdc++.h>//这个是一个万能库
using namespace std;
int main(){
	char c[1000];
	int zimu=0;
	gets(c);//输入一串字符
	int len=strlen(c);
	for(int i=1;i<=len;i++){//判断是不是字母
		if(c[i]>='a'&&c[i]<='z')zimu++;
		if(c[i]>='A'&&c[i]<='Z')zimu++;
	}
	printf("zimu: %d",zimu);//输出字母个数
}

结果如下:
gets()的一个疑问 训练题目:统计字母个数

然而,一个评测平台却显示答案错误。

gets()的一个疑问 训练题目:统计字母个数
很显然结果少了1。
之后我就在输出变量后面+1,答案就对了。

#include<bits/stdc++.h>
using namespace std;
int main(){
	char c[1000];
	int zimu=0;
	gets(c);
	int len=strlen(c);
	for(int i=1;i<=len;i++){
		if(c[i]>='a'&&c[i]<='z')zimu++;
		if(c[i]>='A'&&c[i]<='Z')zimu++;
	}
	printf("zimu: %d",zimu+1);//输出+1
}

结果:
gets()的一个疑问 训练题目:统计字母个数
居然通过了,然而我没有找到原因,希望看到的朋友伸出援助之手。

相关标签: char gets c++