1
#include<iostream>
using namespace std;
int main()
{
int i=0,j=0;
string a,v;
cin>>a;
while(a[i]!='\0')
{
if(a[i]=='a' || a[i]=='e' || a[i]=='i' || a[i]=='o' || a[i]=='u')
{
v[j]=a[i];
j++;
}
i++;
}
cout<<v;
return 0;
}
vを印刷しようとすると、何も印刷されず、なぜわからないのですか? しかし、私は各文字を通過するwhileループを使用してvを印刷しようとすると、正しい出力が表示されます。私は理由を知りたいですか?母音を文字列データ型の文字列から分離して新しい文字列に格納する
このプログラムの動作は未定義です。あなたが 'v '(v [j]')を使ってループしているときに 'v'が空の場合、' a'だけが内容を持ちます( 'cin >> a;'から) – Borgleader
未定義の振る舞いです。 'std :: string'の範囲外要素へのアクセス。 –
ですが、割り当てに問題があった場合、 'int i = 0;を使用すると正しい出力がどのように出力されますか? while(v [i]!= '\ 0'){cout << v [i];私は+ +; } '@Borgleader –