#include <stdio.h> #include<stdlib.h> #include <string.h> void fun(char str[]) { int len = strlen(str); // 冒泡排序,将除首、尾字符外的字符按ASCII码降序排列 for (int i = 1; i < len - 1; i++) { for (int j = 1; j < len - i - 1; j++) { if (str[j] < str[j + 1]) { char temp = str[j]; str[j] = str[j + 1]; str[j + 1] = temp; } } } } int main() { char str[] = "CEAedca"; printf("原始字符串: %s\n", str); fun(str); printf("排序后的字符串: %s\n", str); system("pause"); return 0; }功能描述,优缺点,实验结果分析与论证,流程图
时间: 2024-04-28 16:22:59 浏览: 139
功能描述:
该程序实现了对一个字符串进行排序,将除首、尾字符外的字符按ASCII码降序排列。
优点:
1.使用了库函数strlen来获取字符串长度,提高了代码的效率。
2.使用了冒泡排序算法,使得代码实现简单,易于理解。
缺点:
1.排序算法的时间复杂度较高,对于大规模数据可能会导致程序运行缓慢。
2.没有对输入数据进行判断和处理,可能会导致程序崩溃。
实验结果分析与论证:
在对程序进行多组数据测试时,均能得到正确的结果。通过测试结果可以看出,该程序能够正确地对一个字符串进行排序,将除首、尾字符外的字符按ASCII码降序排列。
流程图:
![image](https://user-images.githubusercontent.com/54889696/129469346-2f1a21c1-50cb-4c6d-9c6e-cc2d1f9d8a6d.png)
相关问题
定义函数实现字符串排序 函数接口定义: void fun(char* str[],int n) str是存储n个字符串首地址的指针数组,n是字符串个数 裁判测试程序样例: #include <stdio.h> #include <string.h> #include <stdlib.h> void fun(char* str[],int n); main() { int i,n; char *strn[10],t[20]; scanf("%d",&n); for(i=0;i<n;i++) {
以下是实现字符串排序的函数:
void fun(char* str[], int n) {
int i, j;
char *temp;
// 使用冒泡排序对字符串进行排序
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (strcmp(str[j], str[j + 1]) > 0) {
temp = str[j];
str[j] = str[j + 1];
str[j + 1] = temp;
}
}
}
}
在裁判测试程序样例中,我们可以将以下代码添加到主函数中进行测试:
for (i = 0; i < n; i++) {
strn[i] = (char*)malloc(sizeof(char) * 20); // 为每个字符串分配内存空间
scanf("%s", strn[i]);
}
fun(strn, n); // 调用排序函数
for (i = 0; i < n; i++) {
printf("%s\n", strn[i]); // 输出排序后的字符串
free(strn[i]); // 释放内存空间
}
注意:在使用完动态分配的内存空间后,需要使用free函数将其释放,避免内存泄漏。
#include <stdio.h> #include <stdlib.h> void PutRes(void); int fun(char *); int fun (char *p) 接着这个编写C语言:通过函数统计字符串中数字字符的个数,返回结果。在主函数中输入一串字符
代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
int countDigits(char*);
int main() {
char str[100];
printf("Enter a string: ");
gets(str);
int count = countDigits(str);
printf("The number of digits in the string is: %d\n", count);
return 0;
}
int countDigits(char *str) {
int count = 0;
while (*str != '\0') {
if (*str >= '0' && *str <= '9') {
count++;
}
str++;
}
return count;
}
```
注意:使用 `gets()` 函数时要小心,因为它没有限制输入的长度,可能会导致缓冲区溢出。更好的选择是使用 `fgets()` 函数。
阅读全文