您的位置:首页 > 其它

【华为OJ】计算字符个数

2014-09-22 17:35 295 查看
写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。

输入:输入一个有字母和数字以及空格组成的字符串,和一个字符;

输出:输出输入字符串中含有该字符的个数。

如:

输入:

ABCDEF

A

输出:

1
解答一:
#include<iostream>
#include<string>
using namespace std;
int main()
{
    string str;
    char n;
    char n1;
    int count = 0;
    getline(cin,str);
    cin>>n;
    cout<<endl;
    n = tolower(n);
    n1 = toupper(n);
    for(string::size_type index=0;index != str.size();++index)
    {
        if(str[index] == n || str[index] == n1)
            ++count;
    }
    cout<<count<<endl;
    return 0;
}


备注:这个解答在VC6.0环境下运行正确,但在华为OJ平台上运行有误,原因如下:



原因是有两个warning
[b]解答二:[/b]

#include<iostream>
using namespace std;
#define MAXSIZE 100
int main()
{
	char c[MAXSIZE];
	char ch;
	int getCharCount(char c[],char ch);
	gets(c);
	ch=getchar();
	int count;
	count=getCharCount(c,ch);
	cout<<count<<endl;
	return 0;
}
int getCharCount(char c[],char ch)
{
	int i=0;
	char *p;
	char chx;
	p=c;
	while(*p!='\0')
	{
		if(ch>='A'&&ch<='Z')//不区分大写小写
			chx=ch+32;
		else
			chx=ch-32;
		if(*p==ch||*p==chx)
			i++;
		p++;
	}
	return i;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: