C 字符串操作函数
针对C风格的字符串(char p[n];):
长度(strlen)、追加(strcat, strncat)、比较(strcmp, strncmp)、查找(strchr, strstr)等。
--带n的版本,是有限操作,而非全部操作。例如strcmp 是对比两个字符串,而strncmp 则是对比两个字符串的前n个字符。
--追加应该使用strncat,因为strcat 有溢出的危险。(奇怪的是,strcat 在我的minGW32 - gcc 4.9.3这里没有提示错误。)
输入(scanf、gets、fgets、sscanf)、输出(printf、puts、fputs、sprintf)。
--scanf 也存在溢出的可能,且会将空白(空格、回车等)当成输入终止。
--gets 只会将回车当成输入终止。但它也存在溢出可能。
--fgets 是安全的。
--sscanf 是将字符串中的内容读取到指定的变量中!和 sprintf 相反。
--sprintf 则是将一串内容输出到指定的字符串!!
还有一个 atoi 函数,可以将字符串转成int 。(atof--转成浮点数,其他略)
--a 应该是 char array的意思。
注意:上面说的溢出,都是目标字符数组的长度 无法容纳最终的结果导致的。
代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h> int main(int argc, char const *argv[])
{
char s1[]="hello world";
char s2[]="abc defxxx"; strcat(s1, s2); //追加
// strncat(s1, s2, strlen(s2));
printf("%s\n", s1); int v = strcmp(s1, s2); //比较
printf("%d\n", v); char s3[]="hello";
char s4[]="hello";
if( s3 != s4){ //应该比较的是地址
printf("%s != %s\n", s3, s4);
} char s5[]="helloaaa";
char s6[]="hellobbb";
v = strncmp(s5, s6, ); //比较前5个字符
printf("%d\n", v); strcpy(s5, s6);
printf("%s, %s\n", s5, s6); strncpy(s1, s2, );//拷贝前几位
printf("%s, %s\n", s1, s2); int i = ;
char ss[]={};
sprintf(ss, "i = %d", i);//把要输出的内容输出到string中?
printf("%s\n", ss); // ss=itoa(i); //不是标准的c语言库函数。vs有
//atoi是标准的c语言库函数 char s7[]="abc=500";
char s8[]="5+6=";
sscanf(s7, "abc=%d", &i); //利用字符串作为输入,输出指定内容到指定变量。
printf("%d\n", i);
int a,b;
sscanf(s8, "%d+%d=", &a, &b);
printf("%d, %d\n", a, b); const char *p = strchr(s7, '='); //查找字符
printf("%s\n", p);
p = strstr(s7, "b"); //查找字符串
printf("%s\n", p); strcpy(s7, "abc_123_ee_xx");
p=strtok(s7, "_"); //将_替换成0
// printf("%s, %p, %p\n", p, p, s7);
// p=strtok(NULL, "_"); //怎么知道是对哪个操作的????
// printf("%s, %p, %p\n", p, p, s7);
// p=strtok(NULL, "_"); //怎么知道是对哪个操作的????
// printf("%s, %p, %p\n", p, p, s7);
while(p){
printf("%s, %p, %p\n", p, p, s7);
p=strtok(NULL, "_");
} return ;
}
C 字符串操作函数的更多相关文章
- JavaScript中常见的字符串操作函数及用法
JavaScript中常见的字符串操作函数及用法 最近几次参加前端实习生招聘的笔试,发现很多笔试题都会考到字符串的处理,比方说去哪儿网笔试题.淘宝的笔试题等.如果你经常参加笔试或者也是一个过来人,相信 ...
- 转:C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文
转自:C语言字符串操作函数 - strcpy.strcmp.strcat.反转.回文 C++常用库函数atoi,itoa,strcpy,strcmp的实现 作者:jcsu C语言字符串操作函数 1. ...
- C语言的常用字符串操作函数(一)
一直做的是单片机相关的程序设计,所以程序设计上更偏向底层,对于字符串的操作也仅限于液晶屏幕上的显示等工作,想提高下字符串操作的水平,而不是笨拙的数组替换等方式,翻看帖子发现C语言的字符串操作函数竟然这 ...
- linux makefile字符串操作函数 替换subst、模式替换patsubst、去首尾空格strip、查找字符串findstring、过滤filter、反过滤filter-out、排序函数sort、取单词word、取单词串wordlist、个数统计words
1.1 字符操作函数使用 在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能.make所支持的函数也不算很多,不过已经足够我们的操作了.函数调用后,函 ...
- mysql常用字符串操作函数大全,以及实例
今天在论坛中看到一个关于mysql的问题,问题如下 good_id cat_id12654 665,56912655 601,4722 goods_id是商品i ...
- Postgresql 字符串操作函数
样例测试: update property set memorial_no = btrim(memorial_no, ' ') where memorial_no like ' %' 或:update ...
- LoadRunner中常用的字符串操作函数
LoadRunner中常用的字符串操作函数有: strcpy(destination_string, source_string); strc ...
- Sql字符串操作函数
1.去空格函数 (1).LTRIM() 把字符串头部的空格去掉. (2).RTRIM() 把字符串尾部的空格去掉. 2.字符转换函数(1).ASCII()返回字符表达式最左端字符的ASCII 码值.在 ...
- C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文
原文:http://www.cnblogs.com/JCSU/articles/1305401.html C语言字符串操作函数 1. 字符串反转 - strRev2. 字符串复制 - strcpy3. ...
- [转载]c++常用字符串操作函数
原文地址:c++常用字符串操作函数作者:Valsun 函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source ...
随机推荐
- Python isnumeric() 方法
描述 Python isnumeric() 方法检测字符串是否只由数字组成.这种方法是只针对unicode对象. 注:定义一个字符串为Unicode,只需要在字符串前添加 'u' 前缀即可,具体可以查 ...
- python标准库介绍——4 string模块详解
==string 模块== ``string`` 模块提供了一些用于处理字符串类型的函数, 如 [Example 1-51 #eg-1-51] 所示. ====Example 1-51. 使用 str ...
- 程序员Git代码托管平台
程序员Git代码托管平台 说到Git代码托管平台,首先推荐的是GitHub,好多好的开源项目都来自GitHub,但是GitHub只能新建公开的Git仓库,私有 仓库要收费,如果你做的是一个开源项目,可 ...
- Google大脑科学家贾杨清(Caffe缔造者)-微信讲座
Google大脑科学家贾杨清(Caffe缔造者)-微信讲座 机器学习Caffe 贾扬清 caffe 一.讲座正文: 大家好!我是贾扬清178,目前在Google Brain69,今天有幸受雷鸣师兄 ...
- Mongodb 与 Mongoose 的使用
目标 无明确目标 知识点 了解 mongodb (http://www.mongodb.org/ ) 学习 mongoose 的使用 (http://mongoosejs.com/ ) 课程内容 mo ...
- 在Visual Studio 2012中使用XNA 4.0
XNA 4.0默认是将项目模板安装到VS2010中的,并不能够自动安装到VS2012,所以需要一些操作来让VS2012中也可以使用XNA 4.0模板. 1.下载XNA 4.0 下载地址:http:// ...
- GNU的strong symbol和weak symbol
首先,同样的原型的两个函数在连个不同的c文件中都有定义,把这两个c文件编译.连接在一起,也没有什么错误.原因就是因为,gcc中有一个strong symbol和weak symbol的概念.默认函数定 ...
- php教程之Smarty模板用法实例
分享下php之Smarty模板的使用方法. 剖析了smarty模板的使用方法,对于学习smarty的朋友有一定的参考价值. 详情如下: 一.模板中的注释每一个Smarty模板文件,都是通过Web前台语 ...
- vue2.0的学习
vue-router 除了使用 <router-link> 创建 a 标签来定义导航链接,我们还可以借助 router 的实例方法,通过编写代码来实现. 1)router.push(loc ...
- 使用apache服务器配置虚拟目录
安装好了apache+php+mysql之后就像在自己电脑上安装wordpress玩玩,因为安装好之后根目录在D盘, 所以就想自己配置一个虚拟目录指向路径为D:\wordpress的wordpress ...