char * name字符串使用

这篇博客探讨了C语言中使用`char*name`处理字符串的方法。示例代码展示了如何为`name`分配内存,并从用户处获取输入,然后打印出学生姓名。在VSCode环境下运行,代码成功实现了基本的字符串输入输出功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、char * name字符串

	指针字符串使用在项目中经常设计,以下是字符串使用。通过代码与运行直观感受。

2、代码

#include<stdio.h>
#include<stdlib.h>
char * name = "中国人";
int main(){

    name = (char *)malloc(sizeof(char));


    printf("请输入姓名:\r\n");
    scanf("%s",name);
    printf("学生的姓名:%s",name);
    return 0;
}

3、vscode运行结果

在这里插入图片描述

在C语言中,你可以通过指针操作来实现字符串数组的交换,避免使用`stdlib`库中的`strcpy`和`strcat`函数,并且假设`swap`函数接收两个指向字符数组首地址的指针作为输入。首先,你需要编写一个用于比较字符串并返回大小关系的辅助函数。然后,可以使用双指针法来交换元素的位置。下面是一个简单的实现示例: ```c #include <stdio.h> // 辅助函数,用于比较两个字符串字典序 int compare_strings(const char* a, const char* b) { while (*a && *b) { if (*a > *b) return 1; else if (*a < *b) return -1; a++; b++; } // 如果一个是另一个的前缀,则后者更长 return *a == '\0' ? -1 : 1; } // 函数定义,不接受const,因为我们将修改输入 void swap(char** b, char** c) { char temp[50]; // 临时存储区,假设每个字符串长度小于50 strcpy(temp, *b); // 将*b的内容复制到temp // 交换指针所指向的字符串 *b = *c; // b指向c的内容 *c = temp; // c指向temp的内容 printf("After swapping: %s -> %s\n", *b, *c); } int main() { char* name[] = {"zhabgsan", "lisi", "wangwu", "zhaoliu", "weiqi"}; int n = sizeof(name) / sizeof(name[0]); for (int i = 0; i < n; ++i) { printf("%s ", name[i]); } // 对字符串数组进行部分无规则排列 swap(&name[0], &name[2]); // 交换第一个和第三个元素 // 现在,继续显示更新后的数组 for (int i = 0; i < n; ++i) { printf("%s ", name[i]); } return 0; } ``` 在这个例子中,`swap`函数会直接交换两个字符串的实际内容,而不是它们在数组中的位置。注意,这里没有使用全局变量`const char`,因为我们不需要外部常量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值