求助,关于字符串的插入函数,看下我错在那里了???
程序代码:[code]
//把输入的第二个字符串插入到第一个字符串里
#include<stdio.h>
int number1 = 0, number2 = 0;
char string1[50], string2[30];//2个字符串
int main(void)
{
int i, start;
char word1, word2;
void insertString(char string1_b[50], char string2_b[30], int start_b);
/*插入字符串函数,
第三个参数为插入第一个字符串是的起始位置*/
printf("Input words: ");//输入第一个字符串
for(i = 0; word1 != '\n'; ++i)
{
word1 = getchar();
string1[i] = word1;
}
number1 = i-1;//记下字符个数
string1[i] = '\0';
printf("Input other words: ");//输入第二个字符串
for(i = 0; word2 != '\n'; ++i)
{
word2 = getchar();
string2[i] = word2;
}
number2 = i-1;//记下字符个数
string2[i] = '\0';
printf("Input this start: ");//起始位置
scanf("%d", &start);
insertString(string1, string2, start);//调用函数
while( (string1[i]) != '\0')//输出
{
printf("%c", string1[i]);
++i;
}
printf("\n");
return 0;
}
void insertString(char string1_b[50], char string2_b[30], int start_b)
{
int x, y,z= 0;
x = number1;
while(x != start_b - 1);//把第一个字符串中在起始位置之后的字符全部后移 number2位
{
string1_b[x + number2] = string1_b[x];
--x;
}
for(y = 0; y < number2; ++y)//插入到腾出来的位置
{
string1_b[start_b + y] = string2_b[y];
}
while(string1_b[z] != '\0')//把局部数组的值 复制到,全局数组中,方便main函数打印
{
string1[z] = string1_b[z];
++z;
}
}
[/code]








