C ++字符[句子/单词]

时间:2014-11-14 20:33:11

标签: c++

我是C ++的初学者,我想更多地了解角色,但我遇到了问题。我试图创建一个复制句子的程序,并在空格('\n')之间添加一个新行(' '),就像逐字逐句地分隔句子一样。

int main()
{
    char s[256], tmp[256];
    int m, n = 0, i;
    cout << "String: ";
    gets(s);
    for (i = 0; i <= strlen(s) - 1; i++)
    {
        if (s[i] == ' ')
        {
            m = i;
            if (n > strlen(s)) tmp[0] = 0;
            else
            {
                if (m >= strlen(s) - n + 1)
                    for (i = 0; i <= strlen(s) - n + 1; i++)
                        tmp[i] = s[n - 1 + i];
                else
                    for (i = 0; i < m; i++) tmp[i] = s[n - 1 + i];
            }
            strcat(tmp, "\n");
            n = i;
        }
    }
    cout << tmp;
    system("PAUSE");
}

1 个答案:

答案 0 :(得分:2)

尝试

更换

for(i=0;i<=strlen(s)-1;i++)
{
    if(s[i] == ' ')
    {
        m=i;
        if(n>strlen(s)) tmp[0] = 0;
        else 
        {
            if(m>=strlen(s)-n+1) 
                for(i=0;i<=strlen(s)-n+1;i++) tmp[i] = s[n-1+i];
            else 
                for(i=0;i<m;i++) tmp[i]=s[n-1+i];
        }
        strcat(tmp,"\n");
        n=i;
    }
}

for(i=0;i<=strlen(s)-1;i++)
{
    if(s[i] == ' ')
    {
        tmp[i] = '\n';
    }
    else
    {
        tmp[i] = s[i];
    }
}