RT
C语言的一道习题
从键盘接收一个字符串,然后按字符顺序从小到大进行排序,并删除重复的字符
#include
#include
voidmain()
{
charstr[100],*p,*q,*r,c;
printf("输入字符串:");
gets_s(str);
for(p=str;*p;p++)
{
for(q=r=p;*q;q++)
{
if(*r>*q)
{
r=q;
}
}
if(r!=p)
{
c=*r;
*r=*p;
*p=c;
}
}
for(p=str;*p;p++)
{
for(q=p+1;*p==*q;)
{
strcpy(p,q);
}
}
printf("结果字符串:%s\n",str);
}
问题在于
使用strcpy后q指向了字符串的下一个字符元素的地址这是为什么
分 -->
|