对于我的家庭作业,我需要做的一部分工作是从用户那里获取一个短语,然后仅从短语中获取字母,而忽略数字,空格和特殊字符。一旦我在字符串中找到字母,就需要将它们存储到一个单独的变量中。但是,我无法获取该变量来存储if
查找字母的语句之外的任何内容。
#include<iostream>
#include<string>
using namespace std;
int main()
{
string line, temp;
cout << "Enter phrase to check: ";
getline(cin, line);
for(int i = 0; i < line.size(); i++)
{
if((line[i] > 64 && line[i] < 91) || (line[i] > 96 && line[i] < 123))
{
temp[i] = line[i];
}
}
cout << temp;
return 0;
}
当我运行程序时,temp
什么也不输出。但是我知道该if
声明可以正确地找到字母,因为它可以打印line[i]
在if
声明中。
您的temp
变量是一个空字符串。temp[x]
告诉编译器更改该x
字符串的-th字符(这没有任何意义,因为该字符串没有任何字符!)。您很幸运(或不幸)您没有遇到任何细分错误(崩溃)。
只需使用+=
运算符:
temp += line[i];
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句