C3 从键盘接收一个字符串,然后按照字符顺序从小到大进行排序并删除重复字符
#include<stdio.h>#include<string.h>
void main()
{
char str,*p,*q,*r,c;
printf("输入字符串:");
gets(str);
/**************FOUND********/
for(p=str;p;p++)
{
for(q=r=p;*q;q++)
if(*q<*r)
r=q;
/**************FOUND********/
if(r==p)
{
/**************FOUND********/
c=r;
*r=*p;
*p=c;
}
}
for(p=str;*p;p++)
{
for(q=p;*p==*q;q++)
strcpy(p+1,q);
}
printf("结果字符串:%s\n\n",str);
getch();
}
C1:for(p=str;*p;p++)
C2:if(r!=p)
C3:c=*r;
Q:改正之后还是运行不出实现程序功能
#include<stdio.h>
#include<string.h>
int main()
{
char str,*p,*q,*r,c;
printf("输入字符串:");
gets(str);
/**************FOUND********/
for(p=str;*p;p++)
{
for(q=r=p;*q;q++)
if(*q<*r)
r=q;
/**************FOUND********/
if(r!=p)
{
/**************FOUND********/
c=*r;
*r=*p;
*p=c;
}
}
for(p=str;*p;p++)
{
for(q=p;*p==*q;q++)
strcpy(p+1,q);
}
printf("结果字符串:%s\n\n",str);
getchar();
}
#include<stdio.h>
int main()
{
char str,*p,*q,c;
printf("请输入字符串:");
gets(str);
for(p=str;*p;p++)
{
for(q=str;*q;q++)
{
if(*p>*q)
{
c=*p;
*p=*q;
*q=c;
}
}
}
p=str;
printf("%c",*p);
for(q=str+1;*q;q++)
{
if(*q!=*(q-1)) printf("%c",*q);
}
return 0;
} wp231957 发表于 2022-4-19 10:38
这个意思?
#include <stdio.h>
int main(void) {
size_t count = {0};
while(1) {
int ch = getchar();
if(ch == '\n') break;
++count;
}
for(size_t i = 0; i < 256; ++i) {
if(count) putchar(i);
}
puts("");
return 0;
}
人造人 发表于 2022-4-19 12:16
这个意思?
嗯,这个算法我知道 wp231957 发表于 2022-4-19 12:18
嗯,这个算法我知道
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int cmp(const void *a, const void *b) {
return *(const char *)a - *(const char *)b;
}
int main(void) {
char buff;
fgets(buff, 1024, stdin);
qsort(buff, strlen(buff), 1, cmp);
for(size_t i = 0; buff; ++i) {
if(buff != buff)
putchar(buff);
}
puts("");
return 0;
}
页:
[1]