c++怎么从键盘输入一个字符串存入字符串数组,并且以 x 结束输入

cout<<"please input a[]"<<endl;
for (i=0;a[i]!='x';i++)
{
cin>>a[100];
}
这样有什么问题
cout<<"please input a[]"<<endl;
for (i=0;a[i]!='x';i++)
{
cin>>a[i];
}
cout<<"please input b[]"<<endl;
for (j=0;b[j]!='x';j++)
{
cin>>b[j];
}
输入a[]以后不能以x结束,b[]也无法输入..

#include<vector>
cout<<"please input a[]"<<endl;
vector<char> v;
char a;
while(cin>>a)v.push_back(a);
这样给你改可以吗?不行的话你看看下面的行不?

cout<<"please input a[]"<<endl;
char a[100];//这样也可以声明为a[],可以默认长度最多保证17个元素
for(int i=0;i<100;i++)
{
char j;
cin>>j;
if(j!='x')a[i]=j;
else break;
}
这样行不行?

我不知道上面是不是你所有的代码,如果是,你这里错误就是数组的长度了,你这样静态的建立一个数组的话,那么数组的长度必须是一个常量或者是默认值,不然必须调用new关键字来创建动态数组。还有就是i和a[]根本没有声明是什么类型的
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-03-19
...for循环语句的最后一条表达式是在循环执行完之后才执行

cout<<"please input a[]"<<endl;
for (i=0;a[i]!='x';i++)
{
//假设现在i=0;
cin>>a[i]; //输入a[0],我们假设输入为x, 即a[0] = 'x';
//i++, i变为1
//下个循环的判断条件是a[1] != 'x'. 显然不是你需要的判断条件.因为a[1]还没有输入.
}本回答被提问者采纳
第2个回答  2019-09-08
...for循环语句的最后一条表达式是在循环执行完之后才执行
cout<<"please
input
a[]"<<endl;
for
(i=0;a[i]!='x';i++)
{
//假设现在i=0;
cin>>a[i];
//输入a[0],我们假设输入为x,
即a[0]
=
'x';
//i++,
i变为1
//下个循环的判断条件是a[1]
!=
'x'.
显然不是你需要的判断条件.因为a[1]还没有输入.
}
第3个回答  2010-08-31
你好!!
代码为:
#include <iostream.h>
int main()
{
char a[100],i=0;
cout<<"请输入字符串并以x结束"<<endl;
cout<<"please input a[]"<<endl;
do
{
cin>>a[i];

}while(a[i++]!='x');
a[i]='\0';
cout<<"输入的字符串为:"<<a<<endl;
return 0;

}
测试:
请输入字符串并以x结束
lease input a[]
lkasjdfjx
输入的字符串为:hlkasjdfjx
ress any key to continue
第4个回答  2019-10-09
...for循环语句的最后一条表达式是在循环执行完之后才执行
cout<<"please
input
a[]"<<endl;
for
(i=0;a[i]!='x';i++)
{
//假设现在i=0;
cin>>a[i];
//输入a[0],我们假设输入为x,
即a[0]
=
'x';
//i++,
i变为1
//下个循环的判断条件是a[1]
!=
'x'.
显然不是你需要的判断条件.因为a[1]还没有输入.
}
相似回答