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

想知道这个程序代码哪里错了。

上苍之手 发布于 2013-03-30 20:57, 513 次点击
想知道哪里错了。
程序代码:
#include<iostream>
#include<cstring>
int main()
{
    using namespace std;
    int i,j,ci=0;
    char word[8];
    char string[100];
    cout << "enter string\n";
    cin.getline(string,100);
    for(i=0;i<100;)
    {
        for(j=0;string[i]!=33;i++,j++)
        word[j]=string[i];
        if(strcmp(word,"done")!=0)
            ci++;
        else break;
    }
    cout <<ci;
}

 
6 回复
#2
azzbcc2013-03-30 21:03
你是要实现什么?

内循环结束之后 ,i值一直不变,是一个死循环
#3
不要脸的猫2013-03-30 21:34
'!'的ASCII码值是 33
#4
上苍之手2013-03-30 22:13
输入一串字符串,计算单词数,以输入done结尾
但是换成#include<iostream>
#include<cstring>
int main()
{
    using namespace std;
    int i,j,ci=0;
    char word[8];
    char string[100];
    cout << "enter string\n";
    cin.getline(string,100);
    for(i=0;i<100;i++)
    {
        for(j=0;string[i]!=33;i++,j++)
        word[j]=string[i];
        if(strcmp(word,"done")!=0)
            ci++;
        else break;
    }
    cout <<ci;
}
还是崩溃。。。
#5
a65237712013-04-04 21:42
char string[100];可以这样的?
#6
allmy342013-04-05 14:53
两个for循环的条件判断不对
#7
allmy342013-04-05 14:56
for(i=0;strings[i];i++)
    {
        for(j=0;(j<8)&&strings[i]&&(strings[i]!=' ');i++,j++)
1