用c语言有参函数不用指针,实现对单词的逆置
时间: 2023-03-24 14:03:27 浏览: 76
可以使用数组来实现对单词的逆置,具体实现如下:
```c
void reverse_word(char str[]) {
int len = strlen(str);
int start = , end = len - 1;
while (start < end) {
char temp = str[start];
str[start] = str[end];
str[end] = temp;
start++;
end--;
}
}
```
其中,参数为一个字符数组,表示需要逆置的单词。函数内部使用双指针的方法,将字符串的首尾字符依次交换,从而实现对单词的逆置。
相关问题
用c语言有参函数不用指针实现对单词的逆置
可以使用字符数组来实现对单词的逆置,具体实现方法如下:
```c
void reverse(char str[]) {
int len = strlen(str);
int i, j;
char temp;
for (i = , j = len - 1; i < j; i++, j--) {
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
int start = , end = ;
for (i = ; i <= len; i++) {
if (str[i] == ' ' || str[i] == '\') {
end = i - 1;
for (j = start; j <= (start + end) / 2; j++) {
temp = str[j];
str[j] = str[start + end - j];
str[start + end - j] = temp;
}
start = i + 1;
}
}
}
```
这个函数的作用是将一个字符串中的每个单词逆置,例如将 "hello world" 转换为 "olleh dlrow"。
用c语言有参函数不使用指针实现对单词的逆置
可以使用字符数组来实现对单词的逆置,具体实现方法如下:
```c
void reverse_word(char str[]) {
int len = strlen(str);
int start = , end = len - 1;
while (start < end) {
// 找到单词的起始位置
while (start < end && !isalpha(str[start])) {
start++;
}
// 找到单词的结束位置
while (start < end && !isalpha(str[end])) {
end--;
}
// 交换单词
if (start < end) {
char temp = str[start];
str[start] = str[end];
str[end] = temp;
start++;
end--;
}
}
}
```
这个函数可以将一个字符串中的每个单词逆置,例如:
```c
char str[] = "hello world";
reverse_word(str);
printf("%s\n", str); // 输出 "olleh dlrow"
```
注意,这个函数只能逆置单词,不能逆置整个字符串。如果需要逆置整个字符串,可以使用类似于冒泡排序的方法,每次交换相邻的两个字符,直到整个字符串都被逆置。
阅读全文