【发布时间】:2015-05-04 15:39:55
【问题描述】:
我是 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;
}
【问题讨论】: