我想添加'。'字符除了字符串中的另一個字符,但我不知道該怎麼做?可能嗎?如何將點字符添加到字符串中的字符?
#include <iostream>
#include <string.h>
using namespace std;
int main(int argc, char *argv[]) {
string input;
char dot='.';
cin>>input;
for(int i=0;i<input.length();i++)
{
if(input[i]>=65 && input[i]<=90)
{
input[i]=input[i]+32;
}
if((input[i]=='a') || (input[i]=='e') || (input[i]=='i') || (input[i]=='o') || input[i]=='y' || input[i]=='u')
{
input.erase(i,i+1);
}
input[i]+=dot;
}
cout<<input<<endl;
return 0;
}
你究竟在做什麼?我認爲你正在使用'std :: string :: erase()'錯誤的方式。例如,如果元音位於索引4,那麼您將從索引4開始擦除5個字符。這是您真正想要的嗎?或者你只是想自己擦除元音?你想讓這個點完全出現在哪裏?你想用點替換元音還是在元音旁邊放點?您使用'[]'運算符使用'erase()'的方式,可能會出現越界錯誤。你需要清除你的問題。 –
我的任務是刪除所有的元音,然後在任何剩餘的字符之前放一個點 – SUE
替換你的if(if(input [i]> = 65 && input [i] <= 90) input [i] = input [i] +32; })''input'[i] = tolower(input [i])''。你認爲ASCII正在使用,這不能保證,再加上它更短,更可讀。 – chris