求助,关于字符串的插入函数,看下我错在那里了???
程序代码:
[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]