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

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

Войти
Регистрация
Восстановить пароль
 
amfisat
67 / 67 / 1
Регистрация: 16.06.2009
Сообщений: 240
#1

Вывод строки - C++

04.12.2011, 12:04. Просмотров 328. Ответов 5
Метки нет (Все метки)

Всем привет!

Такой вот вопрос: почему при выводе строки в конце печатаются какие-то непонятные знаки? И как это убрать?

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
#include <stdio.h>
#include <ctype.h>
#include <conio.h>
 
int main()
{
    int i = 0;
    const int N = 10;
    char ch, str[N];
 
    printf("Enter string:\n");
    while ((ch = _getch()) != 13 && i<N)
    {
        if (isalnum(ch) || ispunct(ch)) 
        {
            _putch(ch);
            str[i++] = ch;
        }
    }
        
    printf("\n%s\n", str);
        
 
    return 0;
}
Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2011, 12:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывод строки (C++):

Вывод на экран чётных слов строки исправить на вывод нечётных слов - C++
#include&lt;conio.h&gt; #include&lt;iostream.h&gt; #include&lt;string.h&gt; #include&lt;stdio.h&gt; int i,l,j,k,p,n; char txt; char a,b; main() { ...

Строки(вывод) - C++
такая проблема... дана задача Вывести на экран последние 5 символов заданной строки. Длина строки должна быть не менее 10. ...

Вывод слов из строки - C++
Суть задачи: Дан текст, состоящий из N (2&lt;=N&lt;=10) строк с максимальной длиной 80 символов. Необходимо вывести в обратном алфавитном...

Вывод части строки - C++
c++ Есть ли простая команда для вывода части строки(ну или n первых символов)? Может я перегрелся или еще что, но сколько не искал не...

Вывод строки по символам - C++
Привет всем форумчанам! Пишу программу для шифрования текста кодом Цезаря. Столкнулся с такой проблемой: когда пытаюсь закодировать русский...

Неправильный вывод строки, C++ - C++
Напишите часть кода которая исправит вывод чтобы сообщение выводилось один раз, а не столько, сколько символов в строке. Желательно через...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
04.12.2011, 12:20 #2
C
1
str[i]='\0';
добвате

Добавлено через 44 секунды
или при объявлении обнулите строку,
или вводите с помощью fgets
amfisat
67 / 67 / 1
Регистрация: 16.06.2009
Сообщений: 240
04.12.2011, 12:22  [ТС] #3
Цитата Сообщение от go Посмотреть сообщение
1
str[i]='\0';
добвате
Да, непонятные символы не печатаются, но теперь при вводе 11-го символа (длина строки=10) одновременно с печатью строки появляется окошко с ошибкой: Стек 'str' переполнен.
Можно как-то от него избавиться?

Спасибо.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
04.12.2011, 12:33 #4
amfisat, ну вводить надо 9 символ (и длина строки 9 символ должна быть)
если объявили
C
1
char s[10];
ведь десятый символ
C
1
s[9]='\0';//считаем от нуля
Естественно у Вас будет ошибка, выход за пределы

Добавлено через 3 минуты
Вообще попробуйте вот такой ввод
C
1
2
3
4
5
6
7
#include <stdio.h>
 
...
 
char s[10];
 
fgets (s,10,stdin);
amfisat
67 / 67 / 1
Регистрация: 16.06.2009
Сообщений: 240
04.12.2011, 12:35  [ТС] #5
Спасибо.

Вообще попробуйте вот такой ввод
Мне надо именно посимвольный ввод.

Сделал так:
C++
1
while ((ch = _getch()) != 13 && i<N-1)
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
04.12.2011, 12:40 #6
amfisat, тогда используйте динамическое выделение памяти, на каждом шаге увеличивая на 1 элемент, с помощью realloc
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2011, 12:40
Привет! Вот еще темы с ответами:

Строки. вывод не получается - C++
#include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;stdio.h&gt; #include &lt;string&gt; using...

Вывод строки на экран - C++
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main() { string s; cout &lt;&lt; &quot;enter string &quot; &lt;&lt; endl; cin...

Вывод строки символов - C++
Я ввожу строку символов в функции get_string. Хочу вывести в main. Почему не выводит? Заранее спасибо! char* get_string(int k) { ...

Вывод строки в файл - C++
Препод задал объяснить задал объяснить программу: #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; /* * */ int main(int argc,...


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

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

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