最近做的一些关于字符串操作的题目,发现其实很多操作都可以直接调用相关函数的,只是因为这些函数比较基础,所以会被直接拿来当笔试题。不过在解决稍复杂的一些问题时,直接调用函数比自己写一个省事多了。挑几个常用的写在这里。
strstr() 字符串查找函数
char* strstr( const char* haystack, const char* needle );
从字符串haystack中搜寻字符串needle,并将其第一次出现的地址返回。
返回:指定字符串第一次出现的地址,否则返回0
strncpy() 复制字符串
char* strncpy( char* dest, const char* src, size_t n );
将参数src字符串拷贝前n个字符至参数dest所指的地址
返回:参数dest的字符串起始地址
strncat() 字符串连接函数
char* strncat( char* dest, const char* src, size_t n );
将参数src字符串拷贝n个字符到参数dest所指的字符串尾。第一个参数dest要有足够空间容纳要拷贝的字符串
返回:参数dest的字符串起始地址
strlen() 字符串长度计算函数
size_t strlen( const char* s );
用于计算指定字符串s的长度,不包括结束字符"\0"
返回:字符串s的字符数
strcmp() 字符串比较函数(比较字符串)
int strcmp( const char* s1, const char* s2 );
用于比较s1和s2字符串。依据ASCII码值进行比较。
返回: 若s1与s2字符串相同则返回0,若不等则返回差值(s1 - s2)。
toupper(), tolower() 字符串大小写转换函数
#include<ctype.h>
int toupper( int c );
若参数c为小写字母则将该参数转换为大写字母返回
返回:转换后的大写字母,若不需要转换则返回c值
strtoul(), strtol(), strtod() 将字符串转化为无符号长整型,长整型,浮点数
#include<stdlib.h>
unsigned long int strtoul( const char* nptr, char **endptr, int base );
将参数nptr字符串根据参数base来转换成无符号的长整型数
参数base代表采用的进制方式( 8, 10, 16 )
返回:转换后的长整型数,否则返回erange并将错误代码存入errno中
atol(), atoi(), atof() 将字符串转换为长整型,整型,浮点型数
include<stdlib.h>
double atof( const char* nptr );
扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时才结束转换
返回:转换后的浮点型数