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

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

Войти
Регистрация
Восстановить пароль
 
Salty_Sugar
26 / 26 / 1
Регистрация: 02.04.2012
Сообщений: 142
#1

Почему-то не реагирует на конец строки '\0' - C++

31.05.2012, 12:26. Просмотров 547. Ответов 6
Метки нет (Все метки)

Задача:
нужно посчитать количество слов в строке.

В программе ставлю условие:
for(int i=0;i<=n-1;i++) if( mass[i]!=' ' && (mass[i+1]==' ' || mass[i+1]=='\0') ) k++;

А он доходит до конца строки и пройдя по последнему слову не делает k++.
Как исправить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2012, 12:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему-то не реагирует на конец строки '\0' (C++):

Массив строк. Конец строки и конец массива - C++
\n - перевод на новую строку \0 - конец строки Если у меня массив строк (текст), чем заканчивается каждая строка, и как закончится...

Как первые два символа строки переставить в конец этой строки? - C++
Собственно вопрос

Описать функцию, что добавляет N символов строки S2 в конец строки S1 - C++
Помогите пожалуйста с выполнением лабораторной работы. Задание: 1. Разработать и реализовать функцию на языке С. 2. Провести ее...

Переписать все цифры каждой строки файла в конец строки - C++
Содержимое текстового файла INPUT.TXT, разделенного на строки, переписать за один проход по файлу в текстовый файл OUTPUT.TXT, перенося при...

Добавить в конец первой строки, последние n2-n1 слов второй строки - C++
помогите пожалуйста! Даны две строки. Пусть n1 - число слов в первой строке, а n2 - во второй (n1&lt;n2). Добавить в конец первой строки,...

В конец каждой строки текстового файла дописать количество символов этой строки - C++
Помогите, нужно : &quot;В конец каждой строки текстового файла дописать количество символов этой строки&quot;. Получается только в начало, не знаю...

6
Toshkarik
1147 / 864 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
31.05.2012, 12:30 #2
Использовать временную строку и функцию strtok.
0
rinat_w
89 / 85 / 4
Регистрация: 13.11.2011
Сообщений: 192
Завершенные тесты: 1
31.05.2012, 12:35 #3
Цитата Сообщение от Salty_Sugar Посмотреть сообщение
for(int i=0;i<=n-1;i++) if( mass[i]!=' ' && (mass[i+1]==' ' || mass[i+1]=='\0') ) k++;
в массиве всего n символов, при i=n-1 когда доходит до строки
mass[i+1]==' '
компилятор не знает что ему делать, ведь элемента mass[n] нету
0
Salty_Sugar
26 / 26 / 1
Регистрация: 02.04.2012
Сообщений: 142
31.05.2012, 14:20  [ТС] #4
rinat_w, так и знал, что первым делом это заметят, но у меня идет подсчет символов с [0] (я считываю символы в массив с [0] индекса) и, соответственно, там ошибки нет. Ну, во всяком случае, я это проверял... нет разницы.
0
Кот Ангенс
318 / 268 / 38
Регистрация: 24.05.2012
Сообщений: 629
31.05.2012, 14:30 #5
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 
short WordCount(const char s[ ]) {
    short i, result = 0;
    char space = 1;
    for (i = 0; s[i]; i++)
        if (s[i] == ' ') {
            if (!space) {
                space = 1;
                result++;
            }
        } else if (space)
            space = 0;
    return result - space + 1;
}
0
Salty_Sugar
26 / 26 / 1
Регистрация: 02.04.2012
Сообщений: 142
31.05.2012, 14:50  [ТС] #6
Кот Ангенс, short - это что?
0
Кот Ангенс
318 / 268 / 38
Регистрация: 24.05.2012
Сообщений: 629
31.05.2012, 15:04 #7
short signed int, короткое целое со знаком, 16 бит.
0
31.05.2012, 15:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2012, 15:04
Привет! Вот еще темы с ответами:

Как переместить символ окончания строки /0 в конец строки? - C++
Это мне нужно сделать, чтоб не появлялись кракозябры. Причем сделать для всех строк подключенного к программе файла.

Добавить в конец каждой строки необходимо количество «*» что бы выровнять текст по правому краю большей строки - C++
Дано некоторое количество строк, не больше как размер текстового окна. Добавить в конец каждой строки необходимо количество «*» что бы...

вопрос к спецам: почему функция fputc при работе не устанавливает счётчик файла в конец? - C++
Друзья! То есть написана программка. С клавы вводится ОДИН символ и он запихивается в файл. А потом этот файл с помощью функции fread...

Почему Ajax не реагирует?? - JavaScript
function send(){ document.getElementById(&quot;otvet&quot;).innerHTML = &quot;Ждём...&quot;; setTimeout(&quot;send()&quot;, 5000); var email =...


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

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

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