关于字符串常考函数
来源:互联网 发布:abc谋杀案知乎 编辑:程序博客网 时间:2024/05/18 02:38
1、strcpy
原型声明:char *strcpy(char* dest, const char *src);
头文件:#include <string.h> 和 #include <stdio.h>
功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){char *str = "hello";char *str1 = (char *)malloc(100);strcpy(str1,str);printf("%s",str1);return 0;}
头文件:#include <string.h>
功能:搜索一个字符串在另一个字符串中的第一次出现。找到所搜索的字符串,则该函数返回第一次匹配的字符串的地址;如果未找到所搜索的字符串,则返回NULL
strstr
(string,search) : string:规定被搜索的字符串。search:规定所搜索的字符串
#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){char *str = "hello";char *str1 = "I say hello xiaopang";char *p = strstr(str1,str);printf("%s",p);return 0;}
3、strcat
头文件:#include <string.h>
功能:将两个char类型链接
原型:char *strcat(char *dest,char *src); 把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'
#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){char *str = "hello";char *str1 = "I say hello xiaopang";strcat(str1,str);printf("%s\n",str1);return 0;}输出错误,把str接在str1后面,必须保证str1空间足够大,可以方向两个字符串的长度和
#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){char *str= "hello";char str1[100] = "I say hello xiaopang ";strcat(str1,str);printf("%s\n",str1);return 0;}此时输出正确
4、memset
头文件:<memory.h>或<string.h>
void *memset(void *s, int ch, size_t n);
函数解释:将s中前n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。
memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法
#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){char str[10]= "hello";printf("%s\n",str);memset(str,'\0',strlen(str));printf("%d,%d,%d,%d\n",str[0],str[1],str[9]);return 0;}
功能:memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。函数返回指向dest的指针
头文件:#include<string.h>
void *memcpy(void *dest, const void *src, size_t n);
#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){char str[10]= "hello";char str1[10] = "123";void *p = memcpy(str1,str,sizeof(char)*6);printf("%s\n%s\n",str1,p);return 0;}
6、puts
puts()函数用来向标准输出设备(屏幕)写字符串并换行
(1). puts()函数只能输出字符串, 不能输出数值或进行格式变换。
(2). 可以将字符串直接写入puts()函数中。如:
puts("Hello, world!");
(3). puts 和 printf 的用法一样,puts()函数的作用与语句“printf("%s\n",s);的作用相同。注意:puts在输出字 符串后会自动输出一个回车符。
#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){char str[10]= "hello";char *p = "xiaopang";puts(str);puts(p);return 0;}7、gets从标准输入设备读字符串函数。可以无限读取,不会判断上限,以回车结束读取从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为‘\0’空字符,并由此来结束字符串。
gets(s)函数与scanf("%s",s)相似,但不完全相同,使用scanf("%s",s) 函数输入字符串时存在一个问题,就是如果输入
<span style="font-family: arial, 宋体, sans-serif; text-indent: 2em; background-color: initial;">了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到遇到换行为止。</span>
也就是说:gets()函数读取到\n(我们输入的回车)于是停止读取,但是它不会把\n包含到字符串里面去。然而,和它配合使用的puts函数,却在输出字符串的时候自动换行。
#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){char str[10];char str1[10];gets(str);//可以接收空格scanf("%s",str1);//空格后内容不再接收puts(str);puts(str1);return 0;}8、sprintf
字符串格式化命令,主要功能是把格式化的数据写入某个字符串中。sprintf 是个变参函数
头文件 stdio.h
原型
int sprintf( char *buffer, const char *format, [ argument] … );
参数列表
buffer:char型指针,指向将要写入的字符串的缓冲区。
format:格式化字符串。
[argument]...:可选参数,可以是任何类型的数据。
返回值:字符串长度(strlen)
#include <stdio.h>int main(){char *str;sprintf(str,"%d",12);return 0;}错误,没有为str申请空间
#include <stdio.h>#include <stdlib.h>int main(){char *str = (char *)malloc(100);char str1[20];sprintf(str,"%d",12);sprintf(str1, "%-4d %d",12,1234);printf("%s\n",str);printf("%s",str1);return 0;}
9、sscanf
sscanf() - 从一个字符串中读进与指定格式相符的数据。
#include <stdio.h>#include <stdlib.h>int main(){char *str = "0123456789";char buffer[10];sscanf(str,"%5s",buffer);puts(buffer);return 0;}
0 0
- 关于字符串常考函数
- 几个常考的关于字符串的函数实现
- 常考字符串处理函数一网打尽
- 常考题目:字符串处理函数
- 常考题目:字符串处理函数
- 几个常考字符串函数处理
- 常考的 c/常考的 c函数/常考的 c++/常考的 c++函数/ja
- 常考--宏与内联函数
- 面试常考的atoi函数
- 面试字符串篇—字符串常考知识点汇总
- 模拟一些字符串库函数(笔试常考)
- 关于sql中索引的优缺点(面试常考)
- 关于sql中索引的优缺点(面试常考)
- 关于malloc问题的改错-笔试常考
- 关于Java多线程的一些常考知识点
- 笔试常考--C++中的虚函数(virtual function)
- 宏与内联函数(面试常考)
- 宏与内联函数(面试常考)
- php开发微信公众号 第三方平台一键绑定(授权)感言
- 非常全面的免费资源网站
- python简单爬虫(二)
- Linux SPI驱动框架剖析
- 理解Fragment生命周期
- 关于字符串常考函数
- chrome启动失败
- android listview中getView重复被调用的问题
- java_map集合
- C++的STL进一步总结之lower_bound和upper_bound
- 凌夕卡密微商城
- hdu 2870 Largest Submatrix 最大子矩阵
- hdu 5441
- CVS介绍