用C语言编写函数int str_inv(char str[]),将字符串str反序。例如,原字符串为"abcdefg",则反序后为"gfedcba"
时间: 2024-03-26 14:34:33 浏览: 12
好的,这是一个比较常见的字符串操作,下面是该函数的C语言实现:
```c
#include <string.h>
int str_inv(char str[]) {
int len = strlen(str);
char temp;
for (int i = 0; i < len / 2; i++) {
temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
return 0;
}
```
该函数使用了一个循环,从字符串的两端开始,依次交换字符,直到字符串中间位置。这样就可以实现字符串的反序。需要注意的是,该函数只是修改了传入的字符串参数,没有返回值。例如,可以这样调用该函数:
```c
char str[] = "abcdefg";
str_inv(str);
printf("%s\n", str); // 输出 "gfedcba"
```
希望能对你有所帮助!
相关问题
使用C语言编写一函数,将字符串s的正序反序连接在一起放在t所指的数组中,自定义函数为格式为:void str_cat(char *s,char *t)
以下是使用C语言编写的将字符串s的正序反序连接在一起放在t所指的数组中的函数:
```c
#include <stdio.h>
#include <string.h>
void str_cat(char *s, char *t) {
int i, j, len;
len = strlen(s);
for (i = 0, j = len - 1; i < len; i++, j--) {
t[i] = s[i];
t[len + i] = s[j];
}
t[2 * len] = '\0';
}
int main() {
char s[] = "hello";
char t[12];
str_cat(s, t);
printf("%s\n", t);
return 0;
}
```
函数`str_cat`接收两个参数`s`和`t`,分别表示输入的字符串和输出的字符串。函数首先计算字符串`s`的长度,然后将字符串`s`的正序和反序依次复制到`t`所指的数组中。最后,在`t`数组的末尾添加一个空字符,以确保它是一个有效的C字符串。
在主函数中,我们定义了一个字符串`s`和一个字符数组`t`,并将字符串`s`传递给`str_cat`函数。然后,我们打印出`t`数组中的字符串。运行程序,输出结果为:
```
helloolleh
```
C语言编写一函数,将一字符串中所有字符按反序存放并输出。
可以使用指针来实现字符串的反转存储。具体实现如下:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *str) {
int len = strlen(str);
char *p = str, *q = str + len - 1;
while (p < q) {
char temp = *p;
*p = *q;
*q = temp;
p++;
q--;
}
}
int main() {
char str[100];
printf("请输入字符串:");
scanf("%s", str);
reverse(str);
printf("反转后的字符串为:%s\n", str);
return 0;
}
```
该程序中的 `reverse` 函数接受一个指向字符串的指针,利用两个指针 `p` 和 `q` 分别指向字符串的首尾,通过交换两个指针所指向的字符来实现字符串的反转。主函数中通过调用 `reverse` 函数来实现字符串的反转和输出。