Форум программистов, компьютерный форум CyberForum.ru

Ошибка в объеденении строк - C++

Восстановить пароль Регистрация
 
nake
 Аватар для nake
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 33
01.03.2012, 22:37     Ошибка в объеденении строк #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <cstdlib>
#include <iostream>
#include <string.h>
 
int main()
{
    char c[200];
    char s[200];
    int i=0;
    int j=0;
    char *pc;
    char *ps;
    printf("Vvedite stroky 1:");
    gets(c);
    pc=strtok(c," ");
    while(pc!=NULL){
                    pc=strtok(NULL," ");
                    i++;}
                    printf("Kol-vo slov v pervoy stroke- %d",i);
    printf("\nVvedite stroky 2:");
    gets(s);
    ps=strtok(s," ");
    while(ps!=NULL){
                    ps=strtok(NULL," ");
                    j++;}
                    printf("Kol-vo slov vo vtoroy stroke- %d\n",j);
                    printf("Predlozhebie:%s\n",strcat(c,s));
    system("PAUSE");
    return 0;
}
Почему-то объденяются только первые слова строк. Где ошибка?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2012, 22:37     Ошибка в объеденении строк
Посмотрите здесь:

C++ Ошибка в программе обработки строк
C++ Ошибка объединения строк
C++ ошибка в массиве строк
Шаблон класса строк - ошибка компиляции C++
C++ ошибка сцепления строк С++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,094
01.03.2012, 22:40     Ошибка в объеденении строк #2
В использовании strtok. Эта функция изменяет начальную строку(заменяет искомые символы нулевыми).
nake
 Аватар для nake
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 33
01.03.2012, 22:44  [ТС]     Ошибка в объеденении строк #3
Цитата Сообщение от NoMasters Посмотреть сообщение
В использовании strtok. Эта функция изменяет начальную строку(заменяет искомые символы нулевыми).
а как тогда правильно написать?
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,094
01.03.2012, 22:53     Ошибка в объеденении строк #4
Можно так:
C
1
2
3
4
5
pc = s;
while(pc != NULL){
    pc = index(++pc, ' ');
    i++;
}
nake
 Аватар для nake
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 33
01.03.2012, 22:57  [ТС]     Ошибка в объеденении строк #5
а что означает index? пожскажите пожалуйста, а то мы такую функцию ещё не проходилили
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,094
01.03.2012, 23:02     Ошибка в объеденении строк #6
Возвращает указатель на первое вхождение символа в строку. Я слегка поторопился, скорее всего в стандартных виндовых библиотеках её нет, но полностью аналогичная strchr должна быть.
nake
 Аватар для nake
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 33
01.03.2012, 23:07  [ТС]     Ошибка в объеденении строк #7
т.е вместо index использовать strchr?

Добавлено через 2 минуты
кстати, мне нужно, чтобы после первой строки шла сразу вторая, т.е. типа предложения, а strchr ищет вхождения в одной строки в другую. или я не прав?
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,094
01.03.2012, 23:28     Ошибка в объеденении строк #8
Цитата Сообщение от nake Посмотреть сообщение
т.е вместо index использовать strchr?
Да.
Цитата Сообщение от nake Посмотреть сообщение
strchr ищет вхождения в одной строки в другую. или я не прав?
Вхождения символа. Тот кусок кода банально считает пробелы.
Цитата Сообщение от nake Посмотреть сообщение
чтобы после первой строки шла сразу вторая
Ну и выводи подряд две строки.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.03.2012, 23:34     Ошибка в объеденении строк
Еще ссылки по теме:

Ошибка в программе по сортировке строк C++
C++ Неуловимая ошибка при считывании строк
Стек строк. Ошибка сегментации C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
nake
 Аватар для nake
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 33
01.03.2012, 23:34  [ТС]     Ошибка в объеденении строк #9
спасиб, пойду пробовать

Добавлено через 4 минуты
Всё работает, тему можно закрывать. Спасибо за помощь!
Yandex
Объявления
01.03.2012, 23:34     Ошибка в объеденении строк
Ответ Создать тему
Опции темы

Текущее время: 08:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru