У меня проблема с удалением символов из строки. Я смог идентифицировать символы, чтобы удалить и сохранить их как новую строку, но мне нужен код, который позволяет мне удалить символы новой строки из исходной строки (где я помечен как xxxxxxxx).Удалить символы из строки в C
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char input[120], to_del[120], new_input[120];
int a,b;
void removeString();
int main(void)
{
printf("\nEnter your sentence: ");
gets(input);
printf("\nWhere to start: ");
scanf("%d",&a);
printf("\nHow many characters to delete: ");
scanf("%d",&b);
removeString();
printf("\nNew sentence: %s\n",new_input);
return ;
}
void removeString()
{
memcpy(to_del, &input[a-1], b);
new_input [strlen(input)-b] =xxxxxxxx;
return ;
}
, пожалуйста, объясните инструкцию strcpy и как это влияет на условие if. Я действительно новичок в программировании. Кроме того, не «void» в начале каждой функции означает, что возвращаемое значение становится излишним? –
heh? Пожалуйста, исправьте меня, если я ошибаюсь, но не так ли (как показано в вашем коде) идеальный путь перекрытия источника и адресата? –
@SouravGhosh да, вы правы - это должно быть Undefined Behavior, поэтому следует использовать 'memmove'.Но я всегда предполагал, что UB применяется, когда строки перекрываются другим способом. –