C语言(1)输入1个字符串,对该字符串按字符大小从小到大的顺序排序,然后输出这个已经排好序的字符串。

(2)输入两个字符串,将两个字符串拼接起来,形成一个大的字符串。(与strcat函数的功能相同)
以上问题都需要用指针处理。
顺便注释它的作用哦,否则我不采纳的

#include<stdio.h>
int main( )
{char s[100],*p,*p1,*p2,c;
gets(s); //读取字符串
for(p=s;*p;p++); //求得串长,p指向'\0'
p--; //冒泡排序外循环终点
for(p1=s;p1<p;p1++,p--) //此二重循环为冒泡排序
for(p2=s;p2<p;p2++)
if(*p2>*(p2+1))
{c=*p2;*p2=*(p2+1);*(p2+1)=c;}
puts(s);
return 0;
}

程序2:
#include<stdio.h>
int main( )
{char s1[100],s2[100],s3[200],s4[200],*p,*p1,*p2;
gets(s1); //读取二个字符串
gets(s2);
for(p=s1,p1=s3;*p;) //复制s1到s3前部
*(p1++)=*(p++);
for(p=s2;*p;) //复制s2到s3后部
*(p1++)=*(p++);
*p1=*p; //设置字符串尾
for(p=s2,p1=s4;*p;) //复制s2到s4前部
*(p1++)=*(p++);
for(p=s1;*p;) //复制s1到s4后部
*(p1++)=*(p++);
*p1=*p; //设置字符串尾
for(p1=s3,p2=s4;*p1==*p2;p1++,p2++); //比较s3与s4逐个字符的大小,直到遇到不同的字符
if(*p1>*p2)puts(s3); //输出较大字符所在的字符串
else puts(s4);
return 0;
}追问

等我回去试试先,要是符合我的要求的话,我绝对会采纳的

温馨提示:答案为网友推荐,仅供参考
相似回答