编写一个函数 void reverseString(char* str),实现将一个字符串进行反转。不能使用标准库函数 strrev 输入:“hel1o” 输出:'olleh^
时间: 2024-10-09 10:06:07 浏览: 17
你可以通过循环遍历字符串并将字符逐个添加到新位置来实现字符串反转。这是一个简单的C语言示例:
```c
#include <stdio.h>
#include <string.h>
void reverseString(char* str) {
int length = strlen(str);
char temp;
for (int i = 0; i < length / 2; i++) {
temp = str[i];
str[i] = str[length - i - 1]; // 交换字符
str[length - i - 1] = temp;
}
}
int main() {
char input[] = "hello";
printf("Original string: %s\n", input);
reverseString(input);
printf("Reversed string: %s\n", input); // 输出 'olleh'
return 0;
}
```
这个`reverseString`函数首先计算字符串长度,然后从头开始和尾部同时向中间移动,每次交换两个字符的位置,直到整个字符串反转。
相关问题
编写一个函数 void reverseString(char* str),实现将一个字符串进行反转。不能使用标准 库函数 strrev
可以使用双指针法编写一个简单的 C 语言函数来实现字符串反转。这个函数接受一个字符数组 `str` 的地址作为输入,然后通过交换首尾字符并逐个向中间移动指针来达到反转的效果。以下是函数的实现:
```c
#include <stdio.h>
void reverseString(char* str) {
if (str == NULL || *str == '\0') { // 检查字符串是否为空
return;
}
char* start = str; // 初始化开始指针
char* end = str + strlen(str) - 1; // 初始化结束指针
while (start < end) { // 当两个指针未相遇时
// 交换当前指向的字符
char temp = *start;
*start = *end;
*end = temp;
// 移动指针
start++;
end--;
}
}
// 示例用法
int main() {
char testStr[] = "Hello, World!";
printf("Original string: %s\n", testStr);
reverseString(testStr);
printf("Reversed string: %s\n", testStr);
return 0;
}
```
当你运行这个程序,输入的字符串 "Hello, World!" 将会变成 "!dlroW ,olleH"。
用C语言写一个完整代码,复制字符串(不能用库函数) void copy_str(char *p1, char *p2)
在C语言中,复制字符串通常涉及到遍历源字符串,然后逐个字符地将其复制到目标字符串中。以下是一个不使用库函数实现复制字符串的示例代码:
```c
#include <stdio.h>
// 自定义复制字符串函数
void copy_str(char *p1, char *p2) {
if (p1 == NULL || p2 == NULL) {
return; // 如果输入指针为空,则直接返回
}
while (*p1) { // 遍历源字符串直到遇到字符串结束符'\0'
*p2 = *p1; // 复制字符
p1++; // 源字符串指针后移
p2++; // 目标字符串指针后移
}
*p2 = '\0'; // 在目标字符串末尾添加字符串结束符
}
// 测试函数
int main() {
char source[] = "Hello, World!";
char destination[sizeof(source)]; // 分配足够的空间来存储源字符串
copy_str(source, destination);
printf("Original string: %s\n", source);
printf("Copied string: %s\n", destination);
return 0;
}
```
在这段代码中,`copy_str` 函数接受两个字符指针参数:`p1` 作为源字符串的指针,`p2` 作为目标字符串的指针。函数内部通过循环遍历源字符串,并将每个字符逐个复制到目标字符串中。当遇到源字符串的结束符(`'\0'`)时,循环结束。最后,将目标字符串的结束符也设置为 `'\0'`,确保它是一个正确格式的字符串。