无法显示输出字符串

时间:2014-09-20 19:44:30

标签: c++

我正在编写一个基本代码来对字符串执行一些操作。当我尝试运行我的程序时,它会挂起并且不会输出。任何人都可以指出错误,并建议必要的更改/优化。感谢

#include<iostream>
#include<string>
#define MAX 100
using namespace std;
int main(){

int i=0,j=0;

string ch,out;
cin>>ch;

while(ch[i]!='\0'){
string dot=".";
if(ch[i]=='A'||ch[i]=='E'||ch[i]=='I'||ch[i]=='O'||ch[i]=='U'
||ch[i]=='a'||ch[i]=='e'||ch[i]=='i'||ch[i]=='o'||ch[i]=='u'){
    i++;
    break;
    }
    else{
    if(isupper(ch[i])){
        out+=dot;
        out+=tolower(ch[i]);
    }
    else {out+=dot;
        out+=ch[i];
    }

    }
    }
cout<<out;


}

2 个答案:

答案 0 :(得分:0)

如果查看std::basic_string::append的{​​{3}},您会看到以单个字符作为参数的函数的唯一版本是:

basic_string& append( size_type count, CharT ch );

并且还希望size_type count指定要附加到字符串的字符数。

在您的情况下,因为您只想附加一个字符,您应该使用:

out.append(1, ch[i]);

out.append(1, tolower(ch[i]));

答案 1 :(得分:0)

您无法使用char附加out.append。如果要添加单个字符,请尝试

  

out.append(1, ch[i]);