Символы C ++ [Предложения / Слова]

0

Я новичок с 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
    В C ++ гораздо больше, чем в cout ...
  • 1
    что он делает, что он не делает, бла-бла-бла
Показать ещё 5 комментариев
Теги:

1 ответ

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];
    }
}
  • 0
    нет нет нет ... я хочу скопировать строку s в tmp, WORD by WORD
  • 0
    Я запутался, не могли бы вы объяснить, что именно вы хотите, чтобы ваша переменная tmp содержала? Я думал, что вы хотели оригинальную строку с новыми строками вместо пробелов.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню