Я новичок в C и задал следующую проблему. Я должен написать программу, в которой можно ввести и сохранить строку, я должен ввести два целочисленных значения, которые затем будут использоваться для удаления символов из строки, после чего результат должен быть напечатан. Как только программа работает, она должна быть преобразована в функцию.Редактор строк (не работает правильно)
Я создал программу, которая разделит введенную строку на две строки, которые хранят символы, которые я хочу хранить в двух буферах, после чего две строки объединяются, чтобы дать результирующую отредактированную строку. Проблема, с которой я сталкиваюсь, заключается в том, что когда я печатаю отредактированную строку, я получаю случайные символы в конце, а иногда между двумя строками, и я думаю, что это потому, что строки не имеют нулевой конец. Я надеюсь, что кто-то сможет помочь, спасибо :)
#include <stdio.h>
#include <string.h>
int main()
{
char string [25];
char buffer1 [25];
char buffer2 [25];
int start;
int remove;
int i;
int finish;
int size;
int numbercopy;
int A, B, C;
printf("Enter a string: ");
gets(string);
printf("\nEnter a starting character position: ");
scanf("%d", &start);
printf("\nHow many characters would you like to remove? ");
scanf("%d", &remove);
finish = (start+remove);
size = strlen(string);
numbercopy = (size-finish);
strncpy(&buffer1[0], &string[0], start);
buffer1[start] = '\0';
strncpy(&buffer2[0], &string[finish], numbercopy);
buffer2[numbercopy] = '\0';
A = strlen(buffer1);
B = strlen(buffer2);
C = (A+B);
strcat(buffer1, buffer2);buffer1[C] = '\0';
for (i=0; i<25; i++)
{
printf("%c", buffer1[i]);
}
return 0;
}
Спасибо за помощь действительно ценю это !! – ATDudman