用c写一个函数反转字符串中的单词
时间: 2023-03-10 19:32:18 浏览: 122
可以使用以下代码:void reverseWords(char* s)
{
int i = 0, j = 0;
int len = strlen(s);
// 逆转字符串
reverse(s, 0, len - 1);
// 逆转每个单词
while (i < len) {
if (s[i] == ' ') {
i++;
j++;
}
else if (j == len || s[j] == ' ') {
reverse(s, i, j - 1);
j++;
i = j;
}
else {
j++;
}
}
}
相关问题
用C语言编写一个函数,实现逆向输出字符串的单词
以下是用C语言编写一个函数,实现逆向输出字符串的单词的例子:
```c
#include<stdio.h>
#include<string.h>
void reverseWords(char *s) {
int len = strlen(s);
int i = 0, j = 0;
while (i < len) {
while (i < len && s[i] == ' ') i++;
if (i >= len) break;
j = i + 1;
while (j < len && s[j] != ' ') j++;
reverse(s + i, s + j);
i = j;
}
reverse(s, s + len);
}
void reverse(char *begin, char *end) {
char temp;
while (begin < end) {
temp = *begin;
*begin++ = *end;
*end-- = temp;
}
}
int main() {
char str[] = "I love programming";
printf("Original string: %s\n", str);
reverseWords(str);
printf("Reversed words: %s\n", str);
return 0;
}
```
输出:
```
Original string: I love programming
Reversed words: programming love I
```
该函数首先使用两个指针 `i` 和 `j` 遍历字符串,以找出每个单词的起始位置和结束位置,然后使用 `reverse` 函数将每个单词反转,最后使用 `reverse` 函数将整个字符串反转。
用C语言编写一个函数,实现逆向输出字符串的单词,并且不用指针
以下是使用C语言编写的函数,实现逆向输出字符串的单词,不使用指针:
```
void reverseWords(char str[]) {
int start, end, i;
int len = strlen(str);
end = len - 1;
// Reverse the entire string
for (start = 0; start < len; start++, end--) {
char temp = str[start];
str[start] = str[end];
str[end] = temp;
}
// Reverse each word in the string
start = 0;
end = 0;
while (end < len) {
while (str[end] != ' ' && end < len) {
end++;
}
for (i = start; i < (start + end) / 2; i++) {
char temp = str[i];
str[i] = str[start + end - i - 1];
str[start + end - i - 1] = temp;
}
start = end + 1;
end++;
}
printf("%s", str);
}
```
这个函数接收一个字符串作为参数,并且将其逆向输出单词。首先,它会使用一个循环来反转整个字符串。接下来,它会循环遍历字符串中的每个单词,并将每个单词反转。最后,它会将结果打印出来。