Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
nake
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 33
#1

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

01.03.2012, 22:37. Просмотров 369. Ответов 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
Ответы с готовыми решениями:

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

ошибка в массиве строк
Здравствуйте! Попыталась написать код программы,которая сортирует строки в...

Ошибка объединения строк
Здравствуйте! Стоит задача вывести все предложения начинающиеся с символа '-'....

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

Ошибка в программе обработки строк
Доброго вечера! Подскажите, пожалуйста, из-за чего ошибка. Есть задача:...

8
NoMasters
Псевдослучайный
1909 / 1120 / 90
Регистрация: 13.09.2011
Сообщений: 3,178
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
Псевдослучайный
1909 / 1120 / 90
Регистрация: 13.09.2011
Сообщений: 3,178
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
Псевдослучайный
1909 / 1120 / 90
Регистрация: 13.09.2011
Сообщений: 3,178
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
Псевдослучайный
1909 / 1120 / 90
Регистрация: 13.09.2011
Сообщений: 3,178
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
01.03.2012, 23:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.03.2012, 23:34

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

Ошибка при конектации строк
Следующая строка даёт ошибку: std::cout &lt;&lt; strcat((char*)&quot;Images/Resources/&quot;,...

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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