c语言输入字符串:c++:1,python:3,c:5,java:4,rust:2请将其中的字符串按照升序排序输出:(输出的格式按照逗号隔开)使用strtok和sscanf
时间: 2024-02-03 20:11:29 浏览: 70
C语言程序设计-将主函数中输入的字符串反序存放;例如:输入字符串“abcdefg”,则应输出“gfedcba”;.c
5星 · 资源好评率100%
下面是使用strtok和sscanf的C语言代码实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char input[MAX_LEN];
fgets(input, MAX_LEN, stdin); // 从标准输入读取字符串
int count[5] = {0}; // 统计各种语言的数量
char* token = strtok(input, ","); // 使用逗号分隔字符串
while (token != NULL) {
char lang[10];
int num;
sscanf(token, "%[^:]:%d", lang, &num); // 使用sscanf解析字符串
if (strcmp(lang, "c++") == 0) {
count[0] = num;
} else if (strcmp(lang, "python") == 0) {
count[1] = num;
} else if (strcmp(lang, "c") == 0) {
count[2] = num;
} else if (strcmp(lang, "java") == 0) {
count[3] = num;
} else if (strcmp(lang, "rust") == 0) {
count[4] = num;
}
token = strtok(NULL, ",");
}
// 冒泡排序
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4 - i; j++) {
if (count[j] > count[j + 1]) {
int temp = count[j];
count[j] = count[j + 1];
count[j + 1] = temp;
}
}
}
// 按照升序输出
printf("c++:%d,python:%d,c:%d,java:%d,rust:%d\n", count[0], count[1], count[2], count[3], count[4]);
return 0;
}
```
输入示例:
```
c++:1,python:3,c:5,java:4,rust:2
```
输出示例:
```
c++:1,python:3,c:5,java:4,rust:2
```
阅读全文