编写一函数char * insert(char *string, char c)

来源:百度知道 编辑:UC知道 时间:2024/05/18 02:52:38
编写一函数char * insert(char *string, char c),用于在一个已排好序(ASCII值从小到大)的字符串string(少于50个字符)中适当位置插入字符c,要求插入后串的序不变(从小到大),允许字符重复,函数返回插入后的字符串。
在main函数中测试该函数:从键盘分别输入有序字符串和单个字符,然后调用insert函数,并向屏幕输出插入后的字符串。

【输入形式】
从键盘分行输入有序字符串和单个字符
【输出形式】
向屏幕输出插入后的字符串
【输入样例】
abdef
c
【输出样例】
abcdef
【样例说明】
从键盘输入少于50个字符的有序字符串abdef和字符c,通过调用函数char * insert(char *string, char c)将字符c插入字符串abdef,并以ASCII值从小到大排序输出
要从键盘输入任意英文字符,谢谢!!

// C 程序
char * insert(char *string, char c);
char *insert1(char *string, char c)
int main()
{
char a[] = "abce";
printf("%s\n", insert(a,'d'));
printf("%s\n", insert1(a,'d'));
getchar();
}
//数组版
char *insert(char *string, char c)
{
char temp[100];
int i=0,index=0;
strcpy(temp,string);

while(temp[i]){
if(temp[i] > c)
string[index++] = c;
string[index++] = temp[i++];
}
string[index] = '\0';
return string;
}
//数组版
char *insert1(char *string, char c)
{
char temp[100],*s = string;
int i=0,index=0;
strcpy(temp,string);
char *t = temp;
while(*t){
if(*t > c)
*(s++) = c;
*(s++) = *(t++);