0 / 0 / 0
Регистрация: 02.11.2015
Сообщений: 10
1

Откуда в конце строки появляются дополнительные символы?

02.11.2015, 16:39. Показов 2419. Ответов 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
26
27
28
29
30
#include "stdafx.h"
#include "math.h"
#include "iostream"
#include "string"
#include "conio.h"
#include "cctype"
#include <algorithm>
using namespace std;
int main()
{
    string s;
    cout << "Vvedite text ";
    getline(cin, s);
    cout << "vvedennaya stroka " << s<<"\n";
    transform(s.begin(), s.end(), s.begin(), tolower);
    cout <<"stroka v nijn registre "<< s<<"\n";
    int i, n, k, len;
    char  *s1,w[10], a[10][10];
    len = strlen(s.c_str());
    
     
    s1 = new char[len];
    for (int j = 0; j < len; j++) {
        s1[j] = s[j];
    }
    cout <<"kol-vo simvolov v stroke " << len <<" stroka " << s1;
 
    _getch();
    return 0;
}
необходимо пояснить, почему при компиляции в консоли появляются неизвестные символы
в тексте объявляю строку, ввожу(необходимо работать с char, но считывает только до пробела. с пробелами и прочи getline использовал), затем перевожу в нижний регистр и переписываю string в char
имеем то, что имеем
иллюстрации прилагаются
Миниатюры
Откуда в конце строки появляются дополнительные символы?  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.11.2015, 16:39
Ответы с готовыми решениями:

Почему в конце символьной строки появляются разные символы, и что с ними делать?
В строке, содержащей последовательность слов, найти конец предложения, обозначенный символом...

Откуда появляются лишние пробелы в конце строк?
Добрый день! подскажите плс, почему в конце каждой строки письма есть лишние пробелы, которые не...

Чтения из файла - в конце появляются непонятные символы
Читаю из файла так char str; char ch; int i=0; while ( (ch = getc(fp)) != EOF ) {...

Появляются непонятные знаки ММММ в конце строки :(
int main(int args, const char * argv) { setlocale(LC_ALL, &quot;Russian&quot;); ...

5
Native x86
Эксперт Hardware
5185 / 3031 / 875
Регистрация: 13.02.2013
Сообщений: 9,635
02.11.2015, 16:49 2
Строка должна заканчиваться нулевым символом. Если его нет, будет происходить вывод тех символов, которые располагаются в памяти за строкой до тех пор, пока среди них не будет найден нулевой символ (или пока процесс не свалится с сегфолтом).
2
0 / 0 / 0
Регистрация: 02.11.2015
Сообщений: 10
02.11.2015, 17:49  [ТС] 3
избавился от "звезд" появился равно
чуток подправил код
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
int main()
{
    string s;
    cout << "Vvedite text ";
    getline(cin, s);
    cout << "vvedennaya stroka " << s<<"\n";
    transform(s.begin(), s.end(), s.begin(), tolower);
    cout <<"stroka v nijn registre "<< s<<"\n";
    int i, n, k, len;
    char  *s1,w[10], a[10][10];
    len = strlen(s.c_str());
    
     
    s1 = new char[len+1];
    for (int j = 0; j < len; j++) {
        s1[j] = s[j];
        if (j == len-1 ) {
            s1[len+1] = '\0';
    }
    }
    cout <<"kol-vo simvolov v stroke " << len <<" stroka " << s1;
 
    _getch();
    return 0;
}
Миниатюры
Откуда в конце строки появляются дополнительные символы?  
0
1369 / 592 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
02.11.2015, 17:50 4
C++
1
2
3
4
s1 = new char[len+1];  //Выделяем +1 для ноль-символа
    for (int j = 0; j <= len; j++) { //Обходим включительно ноль символ
        s1[j] = s[j];
    }
1
Native x86
Эксперт Hardware
5185 / 3031 / 875
Регистрация: 13.02.2013
Сообщений: 9,635
02.11.2015, 17:51 5
Цитата Сообщение от Dastanus Посмотреть сообщение
избавился от "звезд" появился равно
C++
1
s1[len] = '\0';
1
0 / 0 / 0
Регистрация: 02.11.2015
Сообщений: 10
02.11.2015, 17:53  [ТС] 6
Пребольшое спасибо)
исправлено, работает)
нужно освоить отладчик
раньше баловался билдером 6(универ передовик), там отлично помогал)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.11.2015, 17:53
Помогаю со студенческими работами здесь

Откуда берется лишний символ в конце строки?
Эта программа должна считать среднее количество строк , но считает неправильно. #include &lt;stdio.h&gt;...

В конце заданной строки дописать символы,доведя длину строки до 25
Строки вводятся с клавиатуры. В конце заданной строки дописать символы,доведя длину строки до 25.

Ошибка считывания строки из StringGrid, появляются лишние символы
Вся суть проблемы вот в чём.... Я считываю строку из таблицы(StringGrid). Пробовал вначале как...

Странные символы в конце строки
Имеется вот такая вот программа. Мы вводим строку и слово, в строке находим самое длинное слово и...

Символы в конце строки из файла
Код: //--------------------------------------------------------------------------- #include...

Пустые символы в конце строки
Строка отправляется byte data = &quot;123&quot;.getBytes(); InetAddress addr =...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru