c语言 用指针交换字符串前n个字符
时间: 2024-05-10 22:19:33 浏览: 91
c语言字符串交换
可以使用指针来交换字符串的前n个字符,具体实现如下:
```c
#include <stdio.h>
#include <string.h>
void swap(char *str1, char *str2, int n) {
char temp[n + 1]; // 创建一个临时数组来存储要交换的字符
strncpy(temp, str1, n); // 将str1的前n个字符拷贝到临时数组中
strncpy(str1, str2, n); // 将str2的前n个字符拷贝到str1中
strncpy(str2, temp, n); // 将临时数组中的字符拷贝到str2中
}
int main() {
char str1[] = "hello";
char str2[] = "world";
int n = 3;
printf("Before swap: str1=%s, str2=%s\n", str1, str2);
swap(str1, str2, n);
printf("After swap: str1=%s, str2=%s\n", str1, str2);
return 0;
}
```
在上面的代码中,我们定义了一个`swap`函数,该函数接受两个字符串指针和一个整数n作为参数,用于交换这两个字符串的前n个字符。我们首先创建了一个临时数组`temp`,然后使用`strncpy`函数将要交换的字符拷贝到`temp`数组中,接着使用`strncpy`函数将str2的前n个字符拷贝到str1中,最后再将临时数组中的字符拷贝到str2中。
在主函数中,我们定义了两个字符串`str1`和`str2`,以及一个整数n,用于指定要交换的字符数。然后调用`swap`函数进行交换,并输出交换前后的字符串。
阅读全文