c语言中用数组指针进行字符串排列
时间: 2023-12-29 18:04:57 浏览: 80
在C语言中,我们可以使用指向指针的指针或数组指针来进行字符串排列。下面是一个使用数组指针的示例:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char *str[] = {"apple", "banana", "orange", "grape"};
int i, j;
for (i = 0; i < 4; i++)
{
for (j = i + 1; j < 4; j++)
{
if (strcmp(str[i], str[j]) > 0)
{
char *temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
for (i = 0; i < 4; i++)
{
printf("%s\n", str[i]);
}
return 0;
}
```
在上面的示例中,我们首先定义了一个字符串指针数组`str`,其中包含四个字符串。然后,我们使用两个嵌套的循环来比较和交换字符串,以按字母顺序对它们进行排序。最后,我们打印出排好序的字符串。
相关问题
在c语言中用指针实现一串字符串的复制
在C语言中,使用指针实现字符串复制可以利用字符数组和指针操作来完成。下面是一个简单的例子:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
void strcpy(char* dest, const char* src);
int main() {
char source[] = "Hello, World!";
char destination[50]; // 假设目标字符串最多有50个字符
// 使用strcpy函数进行字符串复制
strcpy(destination, source);
printf("源字符串: %s\n", source);
printf("复制后的字符串: %s\n", destination);
return 0;
}
// 字符串复制函数
void strcpy(char* dest, const char* src) {
while(*src != '\0') { // 遍历源字符串直到遇到结束符'\0'
*dest = *src; // 将源字符复制到目标字符串
dest++; // 目标指针向后移动一位
src++; // 源指针也向前移动一位
}
*dest = '\0'; // 确保目标字符串结尾也有'\0'
}
```
在这个示例中,`strcpy`函数接受两个指针参数,一个指向目标字符串(`dest`),另一个指向源字符串(`src`)。它逐个复制源字符串中的字符,并在达到`\0`(空字符)时停止。
c语言中用指向指针的指针对5个字符串排序并输出
下面是用指向指针的指针对5个字符串排序并输出的 C 语言代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
void sort_strings(char **strings, int n);
int main() {
char str[MAX_LEN];
char *strings[5];
int i;
printf("请输入五个字符串:\n");
for (i = 0; i < 5; i++) {
scanf("%s", str);
strings[i] = (char *)malloc(strlen(str) + 1);
strcpy(strings[i], str);
}
sort_strings(strings, 5);
printf("\n排序后的字符串为:\n");
for (i = 0; i < 5; i++) {
printf("%s\n", strings[i]);
}
for (i = 0; i < 5; i++) {
free(strings[i]);
}
return 0;
}
void sort_strings(char **strings, int n) {
int i, j;
char *temp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (strcmp(strings[i], strings[j]) > 0) {
temp = strings[i];
strings[i] = strings[j];
strings[j] = temp;
}
}
}
}
```
这段代码中,我们首先定义了一个字符串数组 `strings`,然后使用 `scanf` 函数从标准输入中读入五个字符串,并使用 `malloc` 函数为每个字符串分配内存。接着,我们调用 `sort_strings` 函数对这五个字符串进行排序。最后,我们使用 `printf` 函数输出排序后的字符串,并使用 `free` 函数释放每个字符串的内存。在 `sort_strings` 函数中,我们使用冒泡排序算法对字符串进行排序。这里需要注意的是,我们使用指向指针的指针来操作字符串数组,以便在排序时能够直接交换字符串的指针。
阅读全文