用c++编写一个函数,该函数将任意长度的字符串按照从a-z先后排序
时间: 2023-06-04 17:03:01 浏览: 77
好的,下面是给您提供的 C 语言代码:
```
#include <stdio.h>
#include <string.h>
void sortString(char* str)
{
int len = strlen(str);
int i, j, temp;
for(i = 0; i < len-1; i++)
{
for(j = i+1; j < len; j++)
{
if(str[i] > str[j])
{
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
printf("排序后的字符串为: %s\n", str);
}
int main()
{
char str[100];
printf("请输入字符串: ");
fgets(str, 100, stdin);
sortString(str);
return 0;
}
```
代码中使用了冒泡排序的算法,通过比较相邻两个字符的大小关系,将其按照从小到大进行交换,最终得到排序后的字符串。请注意,在对字符串进行操作时,必须使用字符串函数 `strlen` 和 `strcpy` 等来确保操作的正确性。
相关问题
在主函数中输入的一个全为小写字母的字符串,编写一个子函数,能够对这个字符串进行从a-z的顺序排序。
好的,我可以帮你编写这样的子函数。以下是一个使用冒泡排序实现字符串排序的示例代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
void sortString(string& s) {
int n = s.length();
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i-1; j++) {
if (s[j] > s[j+1]) {
char temp = s[j];
s[j] = s[j+1];
s[j+1] = temp;
}
}
}
}
int main() {
string s;
cin >> s;
sortString(s);
cout << s << endl;
return 0;
}
```
这个函数的实现非常简单明了,它使用冒泡排序对字符串进行排序,最终将排序后的结果存回到原字符串中。在这个函数中,我们首先获取字符串的长度,然后使用两个嵌套循环对字符串中的每个字符进行比较,如果相邻的两个字符顺序不对,就交换它们的位置。最终,排序后的字符串就会按照从小到大的顺序排列。
你可以将这个子函数添加到你的代码中,然后在主函数中调用它来对输入的字符串进行排序。
用c++编写一个函数求字符串的长度,类似strlen函数
下面是一个简单的C++函数,可以求出给定字符串的长度:
```cpp
#include <iostream>
using namespace std;
int my_strlen(const char* str) {
int len = 0;
while (*str++) {
len++;
}
return len;
}
int main() {
char s[] = "Hello World!";
cout << "字符串长度为:" << my_strlen(s) << endl;
return 0;
}
```
在这个函数中,我们使用了一个指针来遍历整个字符串,每次循环将指针向后移动一位,直到指针指向字符串的结尾处(即 `\0` 字符)。在每次循环中,我们将字符串长度加 1,最终返回字符串的长度即可。