c语言例题指针三

本文提供了多个C语言指针相关的编程题目,包括字符数组操作、字符串转换、字符串复制函数的安全实现、指针数组排序等。通过这些题目,读者可以深入理解C语言中的指针运用,包括字符串操作、指针的动态赋值、字符数组大小的计算、指针数组的排序等技巧。
摘要由CSDN通过智能技术生成

第一题:
void fun41()
{
//定义一个长度为20的字符数组name,初始化为“tom”。
char name[20] = "tom";
int i = 0, len = strlen(name);
//显示name中字符串内容。
for (i = 0; i < len; i++)
{
printf("%c", name[i]);
}
//显示name中字符串长度。

printf("\n字符串长度为:%d", len);
//显示name字符数组的大小。
printf("\n字符数组大小为:%d", sizeof(name) / sizeof(char));
//为name重新赋值字符串“Liming”。
strcpy(name, "Liming");
//编写一个函数show,参数为一个字符串指针,函数的功能是将输入的字符串输出。
show(name);

//定义一个字符指针address,初始化为NULL。
//为address赋值“Beijing”。
char* address = NULL;
address = "Beijing";

//显示address所指向字符串的值。
show(address);

//显示address所指向字符串的长度。
printf("\naddress所指字符串长度为:%d", i);

//address求sizeof(),查看并理解结果。
printf("\nsizeof(address)=%d", sizeof(address));

//为address重新赋值“New York”。
address = "New York";

//显示address所指向字符串的值。
show(address);

//使用strcpy为address赋值“Shanghai”,查看并理解结果。
address = NULL;
char* str = "Shanghai";
strcpy(address, str);

//使用memset为address清零,查看并理解结果。
memset(address, '\0', sizeof(address));

//使用strcat为address追加字符串“street”,查看并理解结果。
strcat(*str,"street");
}

第二题:
接收一个字符串,并将其中小写字母改为大写字母,大写字母改为小写字母,其他字符不变,然

后逆序输出。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
char *s, *p = s;
 printf("请输入一个字符串:\n");
 fflush(stdout);
 scanf("%s", s);
 while (*s != '\0') {
 if (*s >= 'a' && *s <= 'z')
 *s = *s - 32;
 else if (*s >= 'A' && *s <= 'Z')
 *s = *s + 32;
 s++;
 }
 printf("转换并逆序输出:\n%s", strrev(p));
return EXIT_SUCCESS;
}

第三题:
  编写一个名叫my_strcpy的函数,它类似于strcpy函数,但它不会溢出目标数组。复制

的结果必须是一个真正的字符串。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
char *my_strcpy(char *dest, int dest_len,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值