请帮看下下面#include "iostream" using namespace std;

#include "iostream"
using namespace std;

int main()
{

char *p[5] ;
for (int i = 0; i < 5; i++)
{
p[i] = (char *)calloc(100, sizeof(char));
}

cout << "please input an number such as \"one hundred"
" and twenty five\"" << endl;

for (int i = 0; i <= 5; i++)
{
char ch = cin.get();
while (ch != ' ' || ch != '\0')
{

*p[i]++ = ch;
ch = cin.get();
}
if (ch == '\0') break;

}

for (int i = 0; i < 5; i++)
{
cout << p[i];
}

return 0;
}
我想从键盘输入到一段字符串,然后将这段字符串从空格处拆分开到一个指针数组里面,知道字符串结尾
现在我我输入 one hundred and twelve 的时候老是不成功
请高手帮我看下

SMILET
浏览 268回答 1
1回答

跃然一笑

1、cin.get函数不会接收到'\0'这种字符,输入回车后结束输出,因此接收到的应该是'\n'。2、while的循环条件,ch != ' ' || ch != '\n'(这里换成\n),不等于空格或者不等于回车,那这不就是永远为真的?应该是&&吧。3、*p[i]++ = ch; p的指针已经被++了,后面还怎么能当做cout的首地址呢。应该改成这个样子吧&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;*p[5]&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;*q;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;5;&nbsp;i++)&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p[i]&nbsp;=&nbsp;(char&nbsp;*)calloc(100,&nbsp;sizeof(char));&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;<<&nbsp;"please&nbsp;input&nbsp;an&nbsp;number&nbsp;such&nbsp;as&nbsp;\"one&nbsp;hundred"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;and&nbsp;twenty&nbsp;five\""&nbsp;<<&nbsp;endl;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<=&nbsp;5;&nbsp;i++)&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q&nbsp;=&nbsp;p[i];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;ch&nbsp;=&nbsp;cin.get();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(ch&nbsp;!=&nbsp;'&nbsp;'&nbsp;&&&nbsp;ch&nbsp;!=&nbsp;'\n')&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*q++&nbsp;=&nbsp;ch;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ch&nbsp;=&nbsp;cin.get();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(ch&nbsp;==&nbsp;'\n')&nbsp;break;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;5;&nbsp;i++)&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;<<&nbsp;p[i];&nbsp;&nbsp;&nbsp;&nbsp;}
打开App,查看更多内容
随时随地看视频慕课网APP