如何使用cin来获取字符串而不是硬编码?

时间:2016-12-14 19:01:30

标签: c++ c++11

作为一项家庭作业,我们被要求使用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";

   }

1 个答案:

答案 0 :(得分:1)

只需使用getline()从控制台获取一串字符。使用getline,您还可以考虑用户输入中的空格。

string input;
getline(cin, input);

现在要将它与strchr函数一起使用,您只需将其转换为C Type字符串即可,如下所示:

input.c_str

这将返回一个C类型的字符串,因此您可以将其作为参数添加到函数中,

你需要

#include <string>