字符串处理函数
strlen 统计传入字符串的长度,不包括'\0'
strcat 字符串拼接,接收两个参数,把str2的所有字符拼接到str1。如果str1的长度不够大,会导致溢出
strncat 将只会拼接指定长度的字符串
strcmp 对比两个字符串是否相同,相同返回0
strncmp 对比指定的长度
strcpy 字符串的拷贝
strchr 字符串中查找第二个字符串的字符,返回值为查到的位置
strpbrk 在第一个字符串中查找第二个字符串的任意内容,返回值位置
strrchr 从字符串的末尾往前查找指定的位置,返回找到的位置
strstr 返回str2在str1中首次出现的地址
atoi 把字符串转换成整型
atof 、atol
例:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include <string.h>
#define STRLEN 255
int main()
{
char *str = "1234444555";
char strarr[] = "111222333444";
char strcarrier[STRLEN] = { 0 };
size_t szlen = strlen(strarr);
size_t arrayles = sizeof(strarr);
//strcat(str, strarr); //常量区中不能被修改,会出错
if ((strlen(strarr) + strlen(str) - 1 )<= sizeof(strarr))
{
strcat(strarr, str); // 长度不够,会破坏后面的空间
}
strcat(strcarrier, str);
strcat(strcarrier, strarr);
memset(strcarrier, 0, STRLEN); // 作用于内存 ,对内存进行连续的赋值
strncat(strcarrier, str, 5);
strncat(strcarrier, str, STRLEN-strlen(strcarrier));
memset(strcarrier, 0, STRLEN);
strcpy(strcarrier, strarr); // 完全复制,清空原来的值,再赋值。不会出现内存的问题
int temp = strcmp(strcarrier, str); //二者不同返回非0 的值
temp = strcmp(strcarrier, strarr);
temp = strncmp(strcarrier, "333", 5); //取第二个字符串的前几位进行比较
temp = strncmp(strcarrier, "111", 3);
memset(strcarrier, 0, STRLEN);
strcpy(strcarrier, str);
temp = strchr(strcarrier, '4'); //返回一个指针,返回4在字符串中的地址
temp = strrchr(strcarrier, '4'); //倒序查找
temp = strstr(strcarrier, "455"); // 有返回首地址,没有返回空指针
temp = atoi(strcarrier); // 转换成int
char *end = NULL;
memset(strcarrier, 0, STRLEN);
strcpy(strcarrier, str);
temp = strtol(strcarrier, &end, 10); // 指定进制
temp = strtol(strcarrier, &end, 16);
memset(strcarrier, 0, STRLEN);
strcpy(strcarrier, "11122str11");
temp = strtol(strcarrier, &end, 16); //temp的值为11122 &end里为str11
strcpy(strcarrier, "");
sprintf(strcarrier, "%d", temp);
return 0;
}