Невозможно отобразить строку вывода

0

Я пишу базовый код для выполнения некоторых операций над строками. Когда я пытаюсь запустить свою программу, она зависает и не дает результата. Кто-нибудь может указать ошибку и рекомендовать необходимые изменения/оптимизацию. благодаря

#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;


}
  • 0
    Можете ли вы опубликовать полную ошибку, которую вы получаете?
  • 2
    out.append(1, ch[i]) . Или просто out += ch[i];
Показать ещё 3 комментария
Теги:

2 ответа

0

Если вы посмотрите на документацию для std::basic_string::append вы увидите, что единственная версия функции, которая принимает один символ в качестве аргумента:

basic_string& append( size_type count, CharT ch );

и также ожидает, что size_type count указывает количество символов, добавляемых в строку.

В вашем случае, поскольку вы просто хотите добавить один символ, вы должны использовать:

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

а также

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

Вы не можете добавить char используя out.append. Если вы хотите добавить одиночный символ, попробуйте

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню