C语言中字符串的逆序、字符串转整数、整数转字符串、自定义字符串操作(strcpy、strlen、strcat、strcmp)
来源:互联网 发布:ubuntu mendelay 编辑:程序博客网 时间:2024/06/06 14:00
I.说明
作者:WXP(翱翔云端的鸟)
联系方式:328452854@qq.com (联系请注明CSDN)
申明:个人原创,转载请先经过本人同意!
要说的话:个人水平有限,写之前也看过许多大神的博客,不足之处,还请指正!有疑问欢迎大家联系我交流探讨!
II.字符串逆序
环境:VS2017 C/C++ code
从键盘输入一个字符串,实现逆序操作。
看到这个的第一反应想想应该很简单,但是在写的过程中却碰到很多问题,很是头疼
错误示范1:
char *input = NULL;printf("Please Input a string:");scanf("%s",input);
错误示范2:
char *input = "";printf("Please Input a string:");scanf("%s",input);这两种错误都是在输入字符串之后回车就报异常了
错误示范1:这里试图去写地址0(NULL),这个地址是操作系统不允许写入的,所以报错
错误示范2:这里input指向的是空字符串,空字符串是保存在只读空间的,对只读空间写入从而异常
两者还有一个共同的问题,这里虽然定义了字符指针变量input,但是并没有给它分配空间然后直接去写
正确的示范:
char *input = NULL;input = (char *)malloc(100);printf("Please Input a string:");fgets(input,100,stdin);
当然也可以直接使用一个字符数组,与malloc一样都是为其分配空间
注意这里使用的fgets,而不是用的scanf,原因是scanf作输入时,要是中间输入了空格,它会以为字符串结束,空格后的字符作为下一个输入处理了,而fgets不会,此函数用作从文件中读入字符串,也可以从屏幕录入
函数定义:fgets(char *s, int size,FILE *stream)
用来从所指的文件中读入字符到指针s指向的空间,直到出现换行字符,或者是读到文件结束(size-1)个字符当从屏幕录入时,第三个参数使用 stdin
完整的示例:
#include <stdio.h>#include <string.h>#include <malloc.h>void swap(char *p, char *q){char temp = *p;*p = *q;*q = temp;}int main(void){int i;char *input = NULL;input = (char *)malloc(100);printf("Please Input a string:");fgets(input,100,stdin);int len = strlen(input);//求字符串长度len = len - 1; //去掉回车printf("strlen = %d\n", len);printf("%s\n", input);for (i = 0; i < len / 2; i++){swap(&input[i], &input[len - i]);}printf("%s\n",input);while(1);}上述代码在VS2017上验证过了,即使包含空格字符也能够逆转字符串
阅读全文
0 0
- C语言中字符串的逆序、字符串转整数、整数转字符串、自定义字符串操作(strcpy、strlen、strcat、strcmp)
- C语言字符串操作----strlen()、strcpy()、strcat()、strcmp()
- 自定义字符串函数:strlen,strcat,strcpy,strcmp
- 自定义字符串函数:strlen,strcat,strcpy,strcmp
- C语言面试必须会的几个字符串操作函数原型strcpy,strcmp,strlen,strcat
- C语言字符串函数详解 strcpy、strcmp、strcat、strlen、strstr
- C语言中字符串相关函数的实现(strcat strlen strcmp strcpy memcpy)
- strlen, strcpy, strcat, strcmp, memset... (字符串操作函数的实现)
- C语言字符串常用操作函数-puts、gets、strcmp、strcpy、strcat、strlen
- 编C语言程序:用自定义函数实现字符串处理函数strcat、 strcpy、strcmp、strlen和strlwr的功能
- C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文
- C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文
- C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文
- C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文
- 字符串处理函数strlen、strcpy、strcat、strcmp和convert的C语言实现
- c语言学习笔记(字符串函数strcmp,strcat,strcpy,strlen的简单实现)
- C语言中的字符串函数的实现,strcpy,strlen,strcat,strcmp
- C语言字符串函数的模拟实现(strlen、strcpy、strcat、strstr 、strcmp)
- Oracle中正则表达式使用小记
- 计算广告学习笔记1.6 广告的基础知识-计算广告核心问题和挑战
- Shortest Unsorted Continuous Subarray
- 76. Minimum Window Substring
- 嵌入式linux设备驱动的一点感悟
- C语言中字符串的逆序、字符串转整数、整数转字符串、自定义字符串操作(strcpy、strlen、strcat、strcmp)
- 搬瓦工VPS洛杉矶MC机房KVM VPS简单测评/bandwagonhosMC机房KVM VPS测评
- 常用框架的介绍总结等
- 两个标签巧妙实现下图布局
- -initWithData: encoding:返回nil的解决办法
- 从gitHub下载源码后导入module后出现的问题是如下图所示的效果时,请按照本文提醒去做
- 【mysql 存储过程】存储过程之流程控制语句
- openssl编译arm移植及RSA_generate_key_ex的使用实例
- 金蝶EAS,数据中心密码翻译,数据库密码获取