注册 登录
编程论坛 C++教室

求教如何定位输入的一个字符串当中的空格。请各位帮忙看一下。

yangfrancis 发布于 2015-01-04 17:11, 536 次点击
比如用户输入了一个字符串"Bill Black", 则需要判断出第五个字符为空格,这样可以方便把它前面的或后面的字符串提取出来。但就是这种判断没搞定,头痛。
#include<iostream>
using namespace std;
int main()
{
    cout<<"please input a full name: ";
    char name[20];
    gets(name);
    int i;
    while(name[i]!=' ')//本以为这步最容易不过了,结果它不招,换成name[i]!=32还是不招。
    {
        i++;
    }
    cout<<name+i<<" is the family name.\n";
    return 0;
}
顺便说一下,我用的VC++6.0,以上代码经编译是可以通过的,但一运行,就告知我要寻求什么联机解决云云。之后就强迫我按任意键退出程序了。现只能确定问题出来while的循环条件上,但尚未解决。请各位前辈看看我这个程序还有救没?
5 回复
#2
tiucdccsgz2015-01-04 22:02
请不要怕怕
程序代码:
#include<iostream>

 using namespace std;

 int main()

 {
     cout<<"please input a full name: ";
     char name[20];
     gets(name);
     int i=0;
     while(name[i]!=' ')//本以为这步最容易不过了,结果它不招,换成name[i]!=32还是不招。
    {
         i++;
     }
     cout<<name+i+1<<" is the family name.\n";
     return 0;

 }
#3
tiucdccsgz2015-01-04 22:02
请不要怕怕
程序代码:
#include<iostream>

 using namespace std;

 int main()

 {
     cout<<"please input a full name: ";
     char name[20];
     gets(name);
     int i=0;
     while(name[i]!=' ')//本以为这步最容易不过了,结果它不招,换成name[i]!=32还是不招。
    {
         i++;
     }
     cout<<name+i+1<<" is the family name.\n";
     return 0;

 }
#4
yangfrancis2015-01-05 13:54
回复 3楼 tiucdccsgz
cout<<name+i+1<<" is the family name.\n"; 对,严格来讲应该是用name+i+1,但谁能说一下while(name[i]!=' ')的问题咋弄哦?期待啊……
#5
wp2319572015-01-05 15:24
int i;
    while(name[i]!=' ')//本以为这步最容易不过了,结果它不招,换成name[i]!=32还是不招。

多么明显啊  i明显没有赋初始值
#6
yangfrancis2015-01-05 22:22
明白了,很感谢两位的关注。确实错得很荒唐,见笑了。
1