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

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

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

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

01.03.2012, 22:37. Просмотров 338. Ответов 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;
}
Почему-то объденяются только первые слова строк. Где ошибка?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2012, 22:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка в объеденении строк (C++):

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

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

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

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

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

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

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

Добавлено через 2 минуты
кстати, мне нужно, чтобы после первой строки шла сразу вторая, т.е. типа предложения, а strchr ищет вхождения в одной строки в другую. или я не прав?
0
NoMasters
Псевдослучайный
1754 / 1097 / 72
Регистрация: 13.09.2011
Сообщений: 3,134
01.03.2012, 23:28 #8
Цитата Сообщение от nake Посмотреть сообщение
т.е вместо index использовать strchr?
Да.
Цитата Сообщение от nake Посмотреть сообщение
strchr ищет вхождения в одной строки в другую. или я не прав?
Вхождения символа. Тот кусок кода банально считает пробелы.
Цитата Сообщение от nake Посмотреть сообщение
чтобы после первой строки шла сразу вторая
Ну и выводи подряд две строки.
1
nake
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 33
01.03.2012, 23:34  [ТС] #9
спасиб, пойду пробовать

Добавлено через 4 минуты
Всё работает, тему можно закрывать. Спасибо за помощь!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.03.2012, 23:34
Привет! Вот еще темы с ответами:

Ошибка заполнения вектора строк в классе - C++
Никак не могу разобраться. Пробовал по-разному и всегда выскакивали ошибки Вот есть класс resourse class resourse { private: ...

Неуловимая ошибка при считывании строк - C++
Ниже приведен код. Все работает нормально, но по непонятной причине добавляет 1 кракозяблик к имени введеного элемента. В файл пишет без...

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
01.03.2012, 23:34
Ответ Создать тему
Опции темы

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