C语言字符串操作函数整理
整理C语言字符串相关的函数,以程序方式验证,以注释方式做说明。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
char *str1="hello world!";
char *str2="HELLO WORLD!";
int len=strlen(str1);//求的字符串长度,不包括'\0'在内
printf("len=%d\n",len); int cmp=strcmp(str1,str2);
printf("cmp=%d\n",cmp);
//str1>str2,返回大于零的值,str1<str2返回小于零的值,等于返回0。比较方式是逐个字符比较
//int strcmp(char *str1,char * str2,int n),只是可以控制个数,别的和strcmp()一样 char str3[]="hello world!";
char str4[]="HELLO WORLD!";
strcat(str3,str4);
printf("str3=%s\n",str3);
//函数将字符串str4 连接到str3的末端,即抹掉str3结尾的'\0',但是str4结尾的'\0'保留并返回指针str3。
//str4应该为const。str3的空间要足以容纳str3和str4,不然会发生溢出错误,此函数不安全 char str5[]="hello world!";
char str6[]="HELLO WORLD!";
strncat(str5,str6,);
printf("str3=%s\n",str5);
//这个函数和strcat()一样,只是相对更安全,可以显式的控制链接字符个数。
//会抹掉str5的'\0',完了会自动添加'\0' char str7[]="hello world!";
char str8[]="HELLO WORLD!";
strcpy(str7,str8);
printf("str7=%s\n",str7);
//复制str8的内容到str7中,包括'\0',返回str7的指针,即全部抹掉str7的内容,换成str的
//前提是str7的空间要足够大可以容纳str8的内容以及'\0',所以此函数是相对不安全的 char str9[]="hello world!";
char str10[]="HELLO WORLDDDD!";
strncpy(str9,str10,);
len=strlen(str9);
printf("str9=%s\n",str9);
printf("str9 len=%d\n",len);
/*
译:拷贝 source 中的前 num 个字符到 destination 中去。如果在拷贝 num 个字符中遇
到’\0’,则在其后而补’\0’; 如果 source 的长度大于 num,在拷贝完 num 个字符后,并不
会在 destination 的后面追加’\0’。所在这种情况下,destination 不以’\0’结尾,读它可能
会越界。
通常作法是,依据 dest 的大小,设为 N,然后去读 N-1 个字符。然后将 dest[N-1]=
‘\0’;
*/
//老师的文档如上所述,但是自己测试几次都没有出错,并且用strlen()统计也是正确的
//使用此函数前提也是目标字符串的空间要足够,也只是相对的安全 int a=,b=,c=,d=;
char str11[];
sprintf(str11,"%d.%d.%d.%d",a,b,c,d);
len=strlen(str11);
printf("str11=%s\n",str11);
printf("str11 len=%d\n",len);
//函数功能:把格式化的数据写入某个字符串缓冲区。前提是缓冲区要存的下 char str12[]=" 123abc";
int data=atoi(str12);
printf("str12 to data=%d\n",data);
/*
* 函数功能:将字符串转换成整型数;atoi()会扫描参数 nptr 字符串,跳过前面的空格字
* 符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')才结束
* 转化,并将结果返回(返回转换后的整型数),若是首个就是字符,那就返回0
* 在stdlib.h中
*/ data=;
char str13[];
itoa(data,str13,);
printf("base=10,str13=%s\n",str13);
itoa(data,str13,);
printf("base=2,str13=%s\n",str13);
/*
*根据指定的进制(base),将整型数据转化为以’\0’结尾的字符串,保存到 str 指向的字符数组中。
* stdlib.h中
*/ char str15[]="hello world!";
char *p=strchr(str15,'l');
printf("l in str15 first=%s\n",p);
//函数功能:返回字符串 str 中首次出现字符 c 的位置指针,返不到返回 NULL。 char str16[]="ll";
p=strstr(str15,str16);
printf("str16 in str15 first=%s\n",p);
//函数功能:strstr() 函数搜索字符串 str2 在字符串 str1 中是否出现。找到所搜索的字符
//串,则该函数返回第一次匹配的字符串的地址;如果未找到所搜索的字符串,则返回NULL char str17[]="aaa@bbb@ccc@ddd";
char *str18=strtok(str17,"@");
printf("str18=%s\n",str18);
int i=;
for(i=;i<;i++){
str18=strtok(NULL,"@");
printf("str18=%s\n",str18);
}
/*
* 功能:分解字符串为一组字符串。s 为要分解的字符串,delim 为分隔符字符串。
说明:首次调用时,s 指向要分解的字符串,之后再次调用要把 s 设成 NULL。
strtok 在 s 中查找包含在 delim 中的字符并用 NULL('\0')来替换, 直到找遍整个字符串。
返回值:从 s 开头开始的一个个被分割的串。当没有被分割的串时则返回 NULL。
所有 delim 中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。
*/ char str19[]={};
//memset(str19,'y',sizeof(str19));
memset(str19,'y',);
printf("memset str19=%s\n",str19);
//功能: 函数拷贝ch 到buffer 从头开始的count 个字符里, 并返回buffer指针。
//memset() 可以应用在将一段内存初始化为某个值。
//例如:memset( the_array, '\0', sizeof(the_array) );
//这是将一个数组的所以分量设置成零的很便捷的方法。 char str20[]="hello world!";
char str21[]="HELLO WORLD!";
memcpy(str20,str21,);
printf("memcpy str21 to str20=%s\n",str20);
//定义:void *memcpy( void *to, const void *from, size_t count );
//功能:函数从from中复制count 个字符到to中,并返回to指针。如果to 和 from 重叠,函数行为不确定。
//应用于字符串作用类似于strncpy() char str22[]="hello world!";
char str23[]="HELLO WORLD!";
memmove(str22,str23,);
printf("memmove str23 to str22=%s\n",str22);
//功能: 与mencpy相同,不同的是当to 和 from 重叠,函数正常仍能工作。 return ;
}
C语言字符串操作函数整理的更多相关文章
- 转:C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文
转自:C语言字符串操作函数 - strcpy.strcmp.strcat.反转.回文 C++常用库函数atoi,itoa,strcpy,strcmp的实现 作者:jcsu C语言字符串操作函数 1. ...
- C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文
原文:http://www.cnblogs.com/JCSU/articles/1305401.html C语言字符串操作函数 1. 字符串反转 - strRev2. 字符串复制 - strcpy3. ...
- C语言字符串操作函数
1.函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #include < ...
- C语言字符串操作函数总结
转载来源:https://blog.csdn.net/qq_33757398/article/details/81212618 字符串相关操作头文件:string.h 1.strcpy函数 原型:st ...
- C语言-字符串操作函数
gets(char buffer[]) 从标准输入读取一行, 并去掉换行符, 在字符串末尾增加 '\0' 字符, 写入到缓冲区 成功则返回 buffer 的地址, 出错或者遇到文件结尾则返回空指针, ...
- C语言字符串操作函数实现
1.字符串反转 – strRev void strRev(char *str) { assert(NULL != str); int length=strlen(str); ; while(end ...
- c语言字符串操作大全
C语言字符串操作函数 函数名: strcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #incl ...
- C语言的常用字符串操作函数(一)
一直做的是单片机相关的程序设计,所以程序设计上更偏向底层,对于字符串的操作也仅限于液晶屏幕上的显示等工作,想提高下字符串操作的水平,而不是笨拙的数组替换等方式,翻看帖子发现C语言的字符串操作函数竟然这 ...
- C语言字符串操作总结大全(超详细)
本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat( ...
随机推荐
- SRM 504(2-1000pt)
DIV2 1000pt 题意:对于一个n*m的矩阵,每个格子都有一个颜色B或者W.对矩阵A执行以下程序后变成矩阵B.给出矩阵B,求A.(若有多种情况,输出字典序最小的).(n,m <= 16) ...
- 浅析Python中的struct模块
最近在学习python网络编程这一块,在写简单的socket通信代码时,遇到了struct这个模块的使用,当时不太清楚这到底有和作用,后来查阅了相关资料大概了解了,在这里做一下简单的总结. 了解c语言 ...
- Event 元标签中的代码提示问题
自定的事件可以利用Event元标签在支持该事件的类里面做绑定,绑定后FlashBuilder会有代码提示,以提示该类支持的事件类型 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 ...
- 【Python爬虫】安装 pyQuery 遇到的坑 Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?
windows 64位操作系统下,用 Python 抓取网页,并用 pyQuery 解析网页 pyQuery是jQuery在python中的实现,能够以jQuery的语法来操作解析HTML文档,十分方 ...
- java參数传递机制浅析
欢迎转载,转载请声明出处! ----------------------------------------- 前言: java语言中,參数的传递仅仅有一种机制.那就是值传递. 举例: 以下将通过几个 ...
- Android网络框架---OkHttp3
1.添加依赖 compile 'com.squareup.okhttp3:okhttp:3.4.2' project Structure-->dependencied/搜索okhttp. com ...
- 最近新出的C++右值引用的意思
看了一下这种方法的介绍,个人感觉,右值引用,更像人类的思想了,有些将编译前与编译后结合紧密的感觉. 左值引用是变量名的别名,右值引用是值的别名,也就是不将值赋给一个变量名所在的地址,直接将值所在的初始 ...
- intent和intentfilter
intent 和intent Filters startActivity()的机制 用到了IBinder ipc 用到了进程间通讯机制 activity有四种LaunchMode 当startActi ...
- Java基础知识强化18:抽象类、接口的区别 和 选择性实现接口方法
1.抽象类和接口的区别 抽象类里面可以有非抽象的方法(可以没有抽象方法),接口里只能有抽象方法. 抽象类中的抽象方法声明时不能有大括号,而接口中的所有方法都没有大括号. 抽象类(abstract c ...
- Android Camera 使用一例,视频聊天app
视频聊天的应用可以从下面的框图示意. 所以需要从camera获取视频数据(YUV420sp),压缩成H264/MPEG4/H263的包,再传递到对方.接收对方的压缩包,解压出来显示到LCD上. An ...