常见的C语言字符串操作

#字符串倒序输出

实现逻辑,通过strlen获取字符串长度,然后通过 len/2 进行交叉赋值,这里需要注意,不需要考虑len是奇数还是偶数的问题。

如果len是奇数,最后一个字符就不需要倒序,如果是偶数,最后两个字符就倒序。

#include "stdio.h"void rechange_str(char *str)
{int i, len;char tmp;if (NULL == str) {return ;}len = strlen(str);for (i = 0; i < len/2; i   ) {tmp = str[i];str[i] = str[len-i-1];str[len-i-1] = tmp;}
}int main(void)
{char str[20] = "hello,world";printf("%s\n",str);rechange_str(str);printf("%s\n",str);return (0);
} 

程序输出

hello,world
dlrow,olleh--------------------------------
Process exited after 0.02841 seconds with return value 0
请按任意键继续. . .

#整型转字符串

实现逻辑,每个整数看其转换进制,从个位到十位百位都可以通过%操作加上/操作获得,再用一个字符数组保存0-F。

用个位数对应值转为字符,注意转换出的字符串是反向的,还要考虑传入的若是负数如何处理,再用翻转字符串完成最后整个操作

下面这段代码需要好好研究一下,最好自己运行试试。

#include "stdio.h"char *sky_itoa(int value, char *str, unsigned int radix)
{char list[] = "0123456789ABCDEF";unsigned int tmp_value;int i, j, k;if (NULL == str) {return NULL;}if (2 != radix && 8 != radix && 10 != radix && 16 != radix) {return NULL;}i = 0;k = 0;if (radix == 10 && value < 0) {tmp_value = (unsigned int)(0 - value);str[i  ] = '-';k = 1;} else {tmp_value = (unsigned int)value;}do {str[i  ] = list[tmp_value%radix];tmp_value /= radix;} while(tmp_value);str[i] = '\0';//翻转char tmp;for (j = k; j < (i k)/2; j  ) {tmp = str[j];str[j] = str[i k-j-1];str[i k-j-1] = tmp;}return str;
}int main(void)
{int a = 1254545;char str[100] ={0};printf("%s\n",sky_itoa(a,str,2));printf("%s\n",sky_itoa(a,str,8));printf("%s\n",sky_itoa(a,str,10));printf("%s\n",sky_itoa(a,str,16));return (0);
} 

程序输出

100110010010010010001
4622221
1254545
132491--------------------------------
Process exited after 0.02963 seconds with return value 0
请按任意键继续. . .

#字符串复制

实现逻辑,逐个赋值直到遇到'\0'停止即可

#include "stdio.h"char *sky_strcpy(char *dst, const char *str)
{if (NULL == dst ||  NULL == str) {return NULL;}char *ret = dst;while (*str != '\0') {*dst    = *str   ;}return ret; 
} int main(void)
{char str_1[100] = "hello,world";char str[100] ={0};sky_strcpy(str,str_1);printf("str_1:%s\n",str_1);printf("str:%s\n",str);return (0);
} 

程序输出

str_1:hello,world
str:hello,world--------------------------------
Process exited after 0.03334 seconds with return value 0
请按任意键继续. . .

#字符串比较

1、正常比较是否相同 实现逻辑,判断字符串长度是否相同,若相同逐个比较字符是否相同

#include "stdio.h"int sky_strcmp(char *dst, char *str)
{int i, len;if (NULL == dst || NULL == str) {return 0;}if (strlen(dst) != strlen(str)) {return 0;}len = strlen(dst);for (i = 0; i < len; i  ) {if (*dst   != *str  ) {return 0;}}return 1;
} int main(void)
{char str_1[100] = "hello,world";char str_2[100] = "hello,world";char str[100] = "adfs";printf("%d\n",sky_strcmp(str_1,str));printf("%d\n",sky_strcmp(str_1,str_2));return (0);
} 

程序输出

0
1--------------------------------
Process exited after 0.02802 seconds with return value 0
请按任意键继续. . .

声明:

本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/338707.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mui 时间样式错乱_微信公众号素材样式中心在哪?公众号动态分割线怎么添加?...

相比于静态分割线&#xff0c;动态分割线更有特色&#xff0c;能给文章增加趣味性。今天壹姐就来给公众号运营的小伙伴们介绍&#xff0c;怎么添加动态的分割线样式到文章里吧~1怎么使用公众号样式中心公众号后台的编辑功能比较基础&#xff0c;想要使用好看的公众号素材&#…

php获取访问量文本形式,php利用用文本统计访问量的方法图文详解

这篇文章主要介绍了php使用文本统计访问量的方法,涉及php文本文件读写与数值运算的相关技巧,需要的朋友可以参考下方法1&#xff1a;$fp fopen("counter.txt", "r");while(!flock($fp, LOCK_EX)) { // acquire an exclusive lock// waiting to lock the f…

yolov4论文_Alexey 大神接棒,YOLOv4 重磅来袭!快来一睹论文真容吧!| 原力计划...

作者 | Mr.Jk.Zhang责编 | 夕颜出品 | CSDN(ID:CSDNnews)前言千呼万唤始出来系列&#xff0c;继YOLOv3两年后&#xff0c;YOLOv4终于在上周出来了&#xff0c;让我们来一睹论文真容吧&#xff01;由于YOLO之父Jeseph Redmon在今年2月已宣布退出CV学术界&#xff0c;大家都以为Y…

【C/C 】浅谈C/C 中函数指针与回调函数

01、函数指针1.1、函数指针定义一个函数总是占用一段连续的内存区域&#xff0c;函数名在表达式中有时也会被转换为该函数所在内存区域的首地址&#xff0c;这和数组名非常类似。我们可以把函数的这个首地址&#xff08;或称入口地址&#xff09;赋予一个指针变量&#xff0c;使…

jvm 错误_JVM因“ OutOfMemory”错误而关闭-我该怎么办?

jvm 错误看起来似乎很神奇&#xff0c;但是在有关JVM设置的搜索请求结果中经常显示“来自深度”的特定呼声。 您可能会遇到“我记得那个选项&#xff0c;但如何启用它”的问题&#xff0c;而有时&#xff08;主要是半年一次&#xff09;管理服务器或调整虚拟设备&#xff0c;而…

天线3db波束宽度_浅谈 Wi-Fi 天线(2)

在上一期内容中&#xff0c;我们为大家解读了增益(gain)、天线方向图(Antennae Directional Pattern)两个天线技术参数&#xff0c;本期我们来谈谈波束宽度(lobe width)。另一个常见的天线参数是“波束宽度”(又名&#xff1a;波瓣宽度)&#xff0c;英文是 lobe width 或 beam …

C语言实例:3个数从小到大排序

需求任意输入3个整数&#xff0c;对这3个整数由小到大进行排序&#xff0c;并将排序后的结果输出。源码// // author: 冲哥 // date: 2021/5/7 13:37 // description: 实现对这3个整数由小到大进行排序 #include int main() {int num1, num2, num3, temp;printf("请输入3个…

oracle u01清理,Oracleの/u01/11g/diag/rdbms/orcl/orcl/incident 的清理

https://docs.oracle.com/cd/E11882_01/server.112/e25494/diag.htm#ADMIN11007每当一个错误发生的时候&#xff0c;oracle会创建一个incident&#xff0c;并且分配一个INCIDENT_ID号&#xff0c;同时在ADR HOME的INCIDENT目录中创建相应的INCIDENT 目录&#xff0c;每个错误号…

jar 、war、ear_在命令行上操作JAR,WAR和EAR

jar 、war、ear尽管Java IDE和许多图形工具使查看和操作Java归档文件&#xff08;JAR&#xff0c;WAR和EAR&#xff09;文件的内容比以往更加容易&#xff0c;但有时我还是更喜欢使用命令行jar命令来完成这些任务。 当我必须重复做某事或作为脚本的一部分来做时&#xff0c;尤其…

C语言 | 读写文件

C语言怎样向文件读写字符fgetc函数调用形式&#xff1a;fgetc&#xff08;fp&#xff09; 功能&#xff1a;从fp指向的文件读入一个字符。 返回值&#xff1a;读成功&#xff0c;带回所读的字符&#xff0c;失败则返回文件结束标志EOF&#xff08;即-1&#xff09;。fputc函数调…

哨兵系列卫星_空客“哥白尼哨兵-1C”卫星雷达天线首次展开双翼

【民航事儿】2020年8月11日&#xff0c;腓特烈港&#xff1a;通过模拟零重力环境并固定在特殊装置上&#xff0c;哥白尼哨兵-1C卫星的12.3米宽、860公斤重的合成孔径雷达(SAR)的雷达天线&#xff0c;首次成功的在位于德国腓特烈港的空中客车综合技术中心展开双翼。作为哨兵-1系…

oracle vm 环境支持,使用 Oracle VM 模板快速部署 Oracle RAC 环境

6. 实时监控部署状态日志[rootracnode1 racovm]# cat /tmp/progress-racovm.out2014-04-16 03:02:27:[buildcluster:Start:racnode1] Building 11gR2 RAC Cluster2014-04-16 03:02:27:[setsshroot:Start:racnode1] SSH Setup for the root user…2014-04-16 03:02:39:[setsshro…

C语言中return、break用法和区别

1returnreturn&#xff1a;跳出当前正在执行函数。使用方法&#xff1a;return &#xff08;表达式&#xff09;;其中&#xff0c;&#xff08;表达式&#xff09;是可以省略的。 1.有返回类型return通常都是带有返回类型的&#xff0c;比如返回int型变量&#xff1a;int Fun(v…

兴趣点推荐代码_如何解读霍兰德职业兴趣测评结果?

霍兰德职业兴趣测评不难&#xff0c;难的是如何解读测评结果&#xff0c;这才是生涯规划测评中最重要的部分。今天我们就来说说霍兰德职业兴趣测评的结果应该如何解读。兴趣测评的结果是六种类型得分最高的三个代码依次排列组合而成&#xff0c;所以基本上就是R-实用型、I-研究…

linux mint 18支持安卓编译,Linux mint 18版本开启SSH服务

linux mint 18版本默认是没有安装ssh server的需要手动安装安装ssh server&#xff1a;此命令需要联网&#xff0c;会自动下载安装安装之后看是否开始了ssh&#xff0c;看到ssh-agent 和sshd 说明ssh server 已经启动了如果没看到ssh server 需要手动启动需要/etc/init.d/ssh s…

jcg q8 固件_JCG学院开设了Java设计模式课程!

jcg q8 固件自从我们推出JCG学院以来&#xff0c;已经有一段时间了。JCG学院是一个基于付费内容的高级订阅网站&#xff0c;提供有关最新&#xff0c;最先进技术的一系列课程&#xff0c;从RedSQL数据库&#xff08;如Redis和CouchDB&#xff09;到Android移动开发。 当然&…

C语言520心形表白,初学者福利!!

C语言实现打印出心形&#xff0c;初学者的表白神器。解题思路&#xff1a;这道例题我分了4部分&#xff0c;前3行一部分&#xff0c;4-6行一部分&#xff0c;7-13行一部分&#xff0c;最后一行一部分&#xff0c;读者请仔细阅读注释&#xff0c;小林写的很详细了。前三行输出&a…

kali linux 2019教程,[教程]KALI LINUX 2.0 2019 更新国内源

2019年最新版本KALI 为 KALI 2019.1 下载地址:https://www.kali.org/downloads/有的新入门的朋友可能会问&#xff0c;为什么每次都无法手动更新 例如:Update命令的执行失败&#xff1f;其实系统是没有问题的&#xff0c;因为KALI自带的更新源是国外的。因国内延迟高&#xff0…

C | 构成和编码规范

C 的构成1.一个C 程序可以由一个程序单位或多个程序单位构成,每个程序单位为一个文件,编译过程中会对每个文件进行编译。2.每个程序文件包括&#xff1a;预处理命令、全局声明、函数&#xff0c;其中预处理命令就是程序开头的那行&#xff1b;全局声明则是在函数外进行的声明&a…

涡轮流量计说明书_实际应用中超声波流量计与电磁流量计哪个更好用

流量仪表是水务、石化等行业的重要仪器之一&#xff0c;可以用计量的眼睛来比喻。对于水务水利行业&#xff0c;更是具有特殊的意义。比如供水行业中的药剂的添加&#xff0c;如果相关的计量仪表精度不高&#xff0c;将直接影响到水质的优差&#xff0c;甚至会影响到用户人群的…