사용자가 프로그램에서 번호를 부여한 문자를 삭제하고 싶지만 다음 코드를 삭제합니다. 내 코드에서 0이 계산되기 때문입니다. 정확히 숫자를 삭제하는 코드를 어떻게 바꿀 수 있습니까? 사용자가 원하는가? 소스 및 대상 버퍼가 겹치는 경우문자열에서 문자 삭제
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[]) {
char a[30];
int n,i;
printf("enter a string\n");
gets(a);
printf("enter position you want to delete\n");
scanf("%d",&n);
for(i=1;a[i];i++);
strcpy(&a[n],&a[n+1]);
printf("the result is:\n");
puts(a);
getch();
return 0;
}
들여 쓰기를 사용해야합니다! – zoska
원본과 대상 strcpy가 겹칩니다. 또한 for 루프는 아무 것도 수행하지 않으며 사용자로부터 입력 번호의 경계를 확인하지 않습니다. –