当前位置:网站首页>【C语言刷题】指针入门三题|字符串长度、字符串复制、两数交换
【C语言刷题】指针入门三题|字符串长度、字符串复制、两数交换
2022-08-02 16:32:00 【柒号华仔】
作者:柒号华仔
个人主页:欢迎访问我的主页
个人信条:星光不问赶路人,岁月不负有心人。
个人方向:主要方向为5G,同时兼顾其他网络协议,编解码协议,C/C++,linux,云原生等,感兴趣的小伙伴可以关注我,一起交流。
推荐一款模拟面试、刷题神器:*登录免费刷题
目录
前言
今天为小伙伴带来C语言刷题,一起刷题,一起通关面试进大厂,同时刷题也是强化学习,巩固知识的不二法门。
题目来源于牛客网的牛客题霸,链接为:点击跳转刷题神器。经典高频面试题,应有尽有,各种编程语言,一网打尽。努力吧,我们都是赶路人!
)
CC1 获取字符串长度
1.1 题目描述
描述
键盘输入一个字符串,编写代码获取字符串的长度并输出,要求使用字符指针实现。
输入描述:
键盘输入一个字符串
输出描述:
输出字符串的长度
示例
输入: helloworld
输出: 10
1.2 题目解析
程序读取键盘输入字符串后,字符串以’\0’作为结束符号,使用指针指向该字符串数组,通过指针移位来累加字符串长度,直到碰见’\0’结束。
1.3 代码实现
#include<stdio.h>
#include<string.h>
int main(void)
{
char a[64];
gets(a);
char *start=a;
char *end=a;
while(*end!='\0'){
end++;
}
printf("%d",end-start);
return 0;
}
CC2 复制部分字符串
2.1 题目描述
描述
键盘输入一个长度为len(1 <= len < 30)的字符串,再输入一个正整数 m(1 <= m <= len),将此字符串中从第 m 个字符开始的剩余全部字符复制成为另一个字符串,并将这个新字符串输出。要求用指针处理字符串。
输入描述:
键盘输入一个长度为len(1 <= len < 30)的字符串,再输入一个正整数 m(1 <= m <= len)
输出描述:
输出复制的新字符串
示例
输入: helloworld 6
输出: world
2.2 题目解析
解题时要注意时先输入字符串,再输入从第几个字符开始复制。数组是从0开始,因此m需要减一后开始计算。题目要求用指针进行处理,不得用数组。
2.3 代码实现
#include <stdio.h>
#include <string.h>
int main() {
char s[30] = {
0 };
gets(s);
int m = 0;
scanf("%d", &m);
char *p = &s[m - 1];
int n = strlen(s);
for (int i = 1; i < n - m + 1; i++) {
printf("%c", *(p + i));
}
return 0;
}
CC3 编写函数实现两数交换(指针方式)
3.1 题目描述
描述
编写一个函数,实现两个整数的交换,要求采用指针的方式实现。
输入描述:
键盘输入2个整数 m 和 n
输出描述:
输出交换后m 和 n 的值,中间使用空格隔开
示例
输入: 2 3
输出: 3 2
3.2 题目解析
首先要注意的是采用指针方式实现,为了实现交换,我们需要定义一个中间量来进行过渡转化。
3.3 代码实现
#include <stdio.h>
int main()
{
int m=0,n=0,temp=0;
int* pm=&m;
int* pn=&n;
int* pt=&temp;
scanf("%d\n%d",pm,pn);
*pt=*pm;
*pm=*pn;
*pn=*pt;
printf("%d %d\n",m,n);
return 0;
}
结语
纸上得来终觉浅,绝知此事要躬行,C语言的学习还是得基础知识+自己动手同步进行,找一个可以在线练习的网站,比如牛客网,多多练习,假以时日,相信收获巨大,进步神速!
边栏推荐
猜你喜欢
随机推荐
JZ15 二进制中1的个数
制胜精细化运营时代 华为应用市场打出内容、场景、商业运营组合拳
sql2008数据库置疑的解决方法_sqlserver2008数据库可疑
解析并执行 shell 命令
1.NVIDIA Deepstream开发指南中文版--欢迎使用 DeepStream 文档
跨境电商看不到另一面:商家刷单、平台封号、黑灰产牟利
JZ11 旋转数组的最小数字
代码随想录笔记_哈希_61扑克牌中的顺子
【二】TS基本类型
领导无线边缘AI的联合神经形态学习,具有较高的识别精度以及较低的能耗
julia系列5:文本、图像、其他语言函数互动
内网渗透之kerberos认证(三)
实时数仓架构演进及选型
JZ69 跳台阶
金仓数据库 OCCI 迁移指南(4. KingbaseES 的 OCCI 迁移指南)
数字孪生园区场景中的坐标知识
JZ42 连续子数组的最大和
更舒适更安全更时尚 凯翼2023款炫界正式上市
Locking and concurrency control (a)
软件测试面试中90%会遇到的问题:“你会搭建测试环境吗?”