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

Редактирование строки. В строку дозаписывается мусор - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нахождение простых чисел используя алгоритма Лемана http://www.cyberforum.ru/cpp-beginners/thread1121987.html
Программа должна находить большие простые числа с помощью алгоритма Лемана. Написал программу, но для большого числа, например 3990851, не работает, это число простое. Последовательность действий при проверке простоты числа p: 1. Выбрать случайное число а, причем a<p; 2. Вычислить k= a^((p-1) div 2) mod p; 3. Если k ≠ 1 или k≠ (p-1), то рассматриваемое p не является простым. 4. Если k =1 или...
C++ Модуль большого числа Доброго времени суток. Вот такая проблема. Имеется большое число, тип long double, нужно найти остаток от деления на 43, к примеру. (x%43) Проблема в том, что для этого нужен целочисленный тип данных. Число слишком большое и оно вне пределов этого типа. Есть ли альтернатива этой операции в long double или есть другие способы нахождения остатка? Спасибо. http://www.cyberforum.ru/cpp-beginners/thread1121985.html
Переправа через горы C++
В универе задали задачу, никак не могу решить. Помогите, кто разбирается в алгоритме или хотя бы подкиньте идею. Заранее спасибо. Переправа через горы разбита на несколько этапов. Известно расстояние между этапами и высота каждого перевалочного пункта над уровнем моря. Определить: a) длину самого большого подъема; b) сколько этапов в самом длинном подъеме; c) самый большой подъем, его длину...
Дана строка в которой будет находится команда на ассемблере. Построчно разбить эту команду на лексе C++
Подскажите пожалуйста что делать ! У меня такое задание : Дана строка в которой будет находится какая-нибудь команда на ассемблере Например : m1:mov ax,bx;comments Нужно построчно разбить эту команду на лексемы (без раздилителей), чтобы все это выглядело вот так m1 mov ax bx comments Так же проблема заключается в том, что мой препод может потребовать написать строку в которой может...
C++ Посоветуйте компилятор http://www.cyberforum.ru/cpp-beginners/thread1121961.html
Задания на мои лабораторные роботы проверяются на сервере одного сайта. Пишу в Visual Studio и программа компилируется, а вот на сервере нет. Преподаватель посоветовала поставить самый простой консольный компилятор и на нем все отладить, мол Студия что-то сама подключает в добавок. Когда на сервере выбираю компилятор, там выставляю Visual C++ 9.0. Подскажите где такой скачать, и как с ним...
C++ Доступ к переменной только из двух функций. Возможно ли это? Две функции, не члены класса, одна из них должна писать в переменную, другая эту переменную читать и больше ни где эта переменная должна быть не доступна. Инфа должна в этой переменной сохраняться между вызовами второй функции. подробнее

Показать сообщение отдельно
AngerAnger
0 / 0 / 0
Регистрация: 17.03.2014
Сообщений: 12

Редактирование строки. В строку дозаписывается мусор - C++

17.03.2014, 18:29. Просмотров 526. Ответов 2
Метки (Все метки)

Есть программа, которая заменяет в строке "ph" на "f", а "ed" на "ing". Программа работает. Но если выводить, вконце вписывает некое количество мусорных символов. Притом я специально использовал realloc для урезания строки по кол-ву символов в ней. Вот код:
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
31
32
33
34
35
36
37
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#include<iostream>
int main(){
int count=0;
char *str=(char*)malloc(100*sizeof(char)), *p;
char ph[]="ph", ed[]="ed";
printf("Enter your string:");
gets(str);
count+=strlen(str);
p=strstr(str,ph);
while(p)
{
    count--;
    p[1]='f';
    for(char i=0;i<strlen(p);i++)
        p[i]=p[i+1];
    p=strstr(str,ph);
}
p=strstr(str,ed);
while(p)
{
    count++;
    p[0]='i';
    p[1]='n';
    for(int i=strlen(p)-1;i>0;i--)
        p[i+1]=p[i];
    p[2]='g';
    p=strstr(str,ed);
}
str=(char*)realloc(str,count);
for(int i=0;i<count;i++)
    printf("%c",str[i]);
_getch();
return 0;
}
Вопрос: как убрать мусор?
p.s я ввёл счётчик, в который записал размер исходной строки и изменял его в зависимости от кол-ва замен, которые произведёт программа. и соответственно в конце выводил количество символов, равное значению счётчика. но всё же хотелось бы убрать мусор из строки, чтоб выводить через puts и т.д.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru