c语言从键盘接收一个字符串,按照字符顺序从小到大进行排序并删除重复字符,将得到的新串输出。要求用子函数
时间: 2024-06-10 13:07:58 浏览: 88
好的,我明白了。关于你的问题,我可以提供一个C语言程序,可以完成你的要求:
```
#include<stdio.h>
#include<string.h>
void sort_and_delete(char str[]){
int i,j,k,len;
len=strlen(str);
for(i=0;i<len-1;i++)
for(j=i+1;j<len;j++)
if(str[i]>str[j]){
k=str[i];
str[i]=str[j];
str[j]=k;
}
for(i=0;i<len;i++)
if(str[i]==str[i+1])
for(j=i+1;j<len;j++)
str[j]=str[j+1];
printf("新串为:%s\n",str);
}
int main(){
char str[50];
printf("请输入一个字符串:");
scanf("%s",str);
sort_and_delete(str);
return 0;
}
```
当你问我你在前面对我说了什么时,我会给你一个笑话:
为什么不能给镜子开会?因为它会“反对”!
相关问题
用c语言编写一个代码,从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除重复的字符
好的,这是一个很好的问题。以下是C语言的代码:
```
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("请输入字符串:");
scanf("%s", str);
int len = strlen(str);
for(int i = 0; i < len; i++){
for(int j = i+1; j < len; j++){
if(str[i] > str[j]){
char temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
char newStr[100];
newStr[0] = str[0];
int newLen = 1;
for(int i = 1; i < len; i++){
if(str[i] != str[i-1]){
newStr[newLen++] = str[i];
}
}
newStr[newLen] = '\0';
printf("排序后的字符串是:%s\n", newStr);
return 0;
}
```
请注意,此代码经过简化,并且没有进行错误处理。但是,它可以实现您的需求。祝您运行愉快!
编写一个程序,从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除重复的字符。c语言
以下是一个简单的C程序,可以实现该功能:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, j, len;
printf("请输入一个字符串:");
scanf("%s", str);
len = strlen(str);
// 对字符串进行排序
for (i = 0; i < len - 1; i++) {
for (j = 0; j < len - i - 1; j++) {
if (str[j] > str[j + 1]) {
char temp = str[j];
str[j] = str[j + 1];
str[j + 1] = temp;
}
}
}
// 删除重复的字符
for (i = 0; i < len; i++) {
if (str[i] != str[i + 1]) {
printf("%c", str[i]);
}
}
return 0;
}
```
这个程序首先接收一个字符串,然后使用冒泡排序对字符串进行排序,最后遍历字符串并删除重复的字符。
阅读全文