作为一项家庭作业,我们被要求使用strchr来计算单个字母出现在一串文本中的次数。它需要将大小写数量相等。有人建议我们使用某种位操作。 我设法得到一个工作计划。
但是我想通过允许我使用cin来输入字符串而不是直接在源代码中输入字符串(这是练习中提到的)来使程序更具交互性。 是否有可能做到这一点?或者我编写此代码的方式不可能。
#include <iostream>
#include <cstring>
using namespace std;
int main(){
const char *C = "This is a necesarry test, needed for testing.";
char target = 'A';
const char *result = C;
const char *result2;
int count = 0;
int j[26] ={0};
//================================================================================================================================================
for(int i = 0; i <= 51; i++){
if (i == 26){
target = target + 6;
}
result2 = strchr(result, target);
while(result2 != NULL){
if (result2 != NULL){
result2 = strchr(result2+1, target);
if (i <= 25){
j[i] = j[i] +1;
}
if(i > 25){
j[i-26] = j[i-26] +1;
}
cout << target << "\t";
}
}
cout << target << endl;
target++;
}
char top = 'a';
for(int o = 0; o<= 25; o++){
cout << "________________________________\n";
cout << "|\t" << top << "\t|\t" << j[o] << "\t|" << endl;
top++;
}
cout << "________________________________\n";
}
答案 0 :(得分:1)
只需使用getline()从控制台获取一串字符。使用getline,您还可以考虑用户输入中的空格。
string input;
getline(cin, input);
现在要将它与strchr函数一起使用,您只需将其转换为C Type字符串即可,如下所示:
input.c_str
这将返回一个C类型的字符串,因此您可以将其作为参数添加到函数中,
你需要
#include <string>