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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
nake
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 33
#1

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

01.03.2012, 22:37. Просмотров 336. Ответов 8
Метки нет (Все метки)

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++
добрый вечер! Возникла проблема в программе: string str=&quot;D:\\Tab&quot;+n+&quot;.txt&quot; подчеркивает &quot;.txt&quot; красным и говорит:&quot;выражение должно...

ошибка в массиве строк - C++
Здравствуйте! Попыталась написать код программы,которая сортирует строки в файле (оканчивающиеся символом перевода строки) с помощью...

Ошибка объединения строк - C++
Здравствуйте! Стоит задача вывести все предложения начинающиеся с символа '-'. Для этого написан след. код: #include &lt;cstdlib&gt; ...

Ошибка в программе обработки строк - C++
Доброго вечера! Подскажите, пожалуйста, из-за чего ошибка. Есть задача: написать функцию, входными параметрами которой является...

Ошибка в программе по сортировке строк - C++
Здравствуйте. Моя программа считывает с клавиатуры указанное пользователем количество строк, а затем пользователь выбирает способ...

Стек строк. Ошибка сегментации - C++
Привет всем! Программирую недавно, около месяца, в своей программе столкнулся с ошибкой сегментации. Не могу понять, в чем проблема. ...

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

Добавлено через 2 минуты
кстати, мне нужно, чтобы после первой строки шла сразу вторая, т.е. типа предложения, а strchr ищет вхождения в одной строки в другую. или я не прав?
NoMasters
Псевдослучайный
1744 / 1087 / 71
Регистрация: 13.09.2011
Сообщений: 3,115
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++
обьявил массив из 9 строк в каждой строке 10 элементов string temp;int i=0; char str_array; while(!in.eof()) ...

Ошибка при выводе строк из файла - C++
Помогите пожалуйста разобраться в чем ошибка. Весь код писать не буду просто покажу как я вношу данные в файл и считываю. int j=i; ...

Ошибка в конструкторе класса динамических строк - C++
Необходимо создать класс динамических строк с конструктором копирования, оператором присваивания, операторами сравнения, операторами...

Непонятная ошибка при сложении строк - C++
добрый вечер! Возникла проблема в программе: string str=&quot;D:\\Tab&quot;+n+&quot;.txt&quot; подчеркивает &quot;.txt&quot; красным и говорит:&quot;выражение должно быть...


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

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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru