本题实现,输入一个包含空格的多单词字符串,单词与单词之间用1个或多个空格分隔。请将字符串中用空格分隔的单词排序后在屏幕上输出来。 要求用指针完成函数中各参数的传递与访问,自定义函数头和函数体中不得出现数组下标形式的表示法。 函数接口定义: int split_sort(char *str,char **pStr); 函数对字符串中的单词进行分割,并按字典顺序输出排序后的单词,函数返回字符串中单词的数目。str用于接收实参字符串,pStr用于存放分割后的各单词对应字符串的首地址。下面函数的定义部分框架与花括号部分已经给出了,只需给出函数{...}之中的部分。 用c语言写个函数实现‘
时间: 2023-06-14 16:03:28 浏览: 417
Python实现统计英文单词个数及字符串分割代码
int split_sort(char *str, char **pStr) {
int count = 0;
char *temp = str;
while (*temp != '\0') {
// 跳过单词前的空格
while (*temp == ' ') {
temp++;
}
// 如果已经到达字符串末尾,退出循环
if (*temp == '\0') {
break;
}
// 记录单词的起始地址
pStr[count] = temp;
count++;
// 查找单词结尾位置
while (*temp != ' ' && *temp != '\0') {
temp++;
}
// 将单词结尾位置的空格替换为字符串结束符
if (*temp == ' ') {
*temp = '\0';
temp++;
}
}
// 对单词进行排序
for (int i = 0; i < count - 1; i++) {
for (int j = i + 1; j < count; j++) {
if (strcmp(pStr[i], pStr[j]) > 0) {
char *temp = pStr[i];
pStr[i] = pStr[j];
pStr[j] = temp;
}
}
}
// 输出排序后的单词
for (int i = 0; i < count; i++) {
printf("%s ", pStr[i]);
}
printf("\n");
return count;
}
阅读全文