c语言中使用数组指针,编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组示例 1:输入:s = ["h","e","l","l","o"]输出:["o","l","l","e","h"]
时间: 2023-07-02 18:21:36 浏览: 46
好的,我可以帮你解决这个问题。以下是一个使用数组指针实现字符串反转的 C 代码示例:
```c
#include <stdio.h>
#include <string.h>
void reverse_string(char *s) {
int len = strlen(s);
char *start = s;
char *end = s + len - 1;
while (start < end) {
char temp = *start;
*start++ = *end;
*end-- = temp;
}
}
int main() {
char s[] = "hello";
printf("Original string: %s\n", s);
reverse_string(s);
printf("Reversed string: %s\n", s);
return 0;
}
```
该函数接收一个字符指针作为参数,代表要反转的字符串。在函数内部,我们使用指针来指向字符串的起始和末尾位置,并在一个循环中交换它们的值,直到遍历完整个字符串。
在 main 函数中,我们先打印出原始字符串,然后调用 reverse_string 函数来反转字符串,并打印出反转后的结果。
运行程序,输出结果如下:
```
Original string: hello
Reversed string: olleh
```
希望这个示例能对你有所帮助!
相关问题
c语言编写一个函数 将主函数中输入的字符串反序存放
好的,我可以为您编写一个反转字符串的函数。以下是代码示例:
```c
#include <stdio.h>
#include <string.h>
void reverseString(char *str) {
int len = strlen(str);
int i, j;
char temp;
for (i = 0, j = len - 1; i < j; i++, j--) {
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
reverseString(str);
printf("反转后的字符串为:%s\n", str);
return 0;
}
```
在这个函数中,我们使用了 `strlen()` 函数来获取输入字符串的长度,然后使用两个指针 `i` 和 `j` 来指向字符串的首尾字符。在循环中,我们交换了这两个指针所指向的字符,直到指针相遇。最后输出反转后的字符串即可。
希望这个代码示例能够帮助到您。如果您有任何其他问题,请随时问我。
设计一个函数,利用冒泡法对若干个字符串进行排序,利用C语言,使用指针数组存储字符串,
这是一个有效问题。冒泡排序是一种排序算法,其基本思想是对相邻的元素进行比较和交换,以此将小的元素逐步“冒泡”到数组的前面。对于字符串的排序,可以利用指针数组存储多个字符串,然后按照字符串的字典序进行比较和交换。以下是一个利用冒泡排序对字符串进行排序的C语言示例代码:
```
#include <stdio.h>
#include <string.h>
#define MAX_STR_LEN 100
#define MAX_STR_NUM 10
void bubble_sort(char *str[], int n)
{
int i, j;
char *temp;
for (i = 0; i < n - 1; i++)
{
for (j = 0; j < n - 1 - i; j++)
{
if (strcmp(str[j], str[j+1]) > 0)
{
temp = str[j];
str[j] = str[j+1];
str[j+1] = temp;
}
}
}
}
int main()
{
char str[MAX_STR_NUM][MAX_STR_LEN];
char *str_ptr[MAX_STR_NUM];
int n, i;
printf("Enter the number of strings: ");
scanf("%d", &n);
for (i = 0; i < n; i++)
{
printf("Enter string %d: ",i+1);
scanf("%s", str[i]);
str_ptr[i] = str[i];
}
bubble_sort(str_ptr, n);
printf("Sorted strings:\n");
for (i = 0; i < n; i++)
{
printf("%s\n", str_ptr[i]);
}
return 0;
}
```
该程序通过定义一个指针数组 `str_ptr` 来存储多个字符串,然后使用 `strcmp()` 函数来比较字符串的大小关系,完成字符串的排序。在程序运行时,先输入要排序的字符串数量 `n`,然后输入 `n` 个字符串,程序将自动按照字典序递增的顺序对字符串进行排序,并输出排序后的字符串。