C语言不像C++ 有强大的字符串类,需要自己对字符串常用函数进行封装,本人根据自己的项目积累,把一些常用字符串处理函数分享给大家。
1. 字符串相加strAdd
char* strAdd(const char* str1, const char* str2) {
char* result = malloc(strlen(str1) + strlen(str2) + 1);
sprintf(result, "%s%s", str1, str2);
return result;
}
2. 去掉两端空格
char* trim(char* str) {
size_t len = strlen(str);
size_t start = 0;
size_t end = len - 1;
// 去除开头的空格
while (isspace(str[start]) && start < len) {
start++;
}
// 去除尾部的空格
while (isspace(str[end]) && end > 0) {
end--;
}
// 如果start > end,则字符串全为空格
if (start > end) {
str[0] = '\0'; // 将字符串清空
} else {
str[end + 1] = '\0'; // 设置字符串结尾
// 如果start不为0,需要移动字符串
if (start != 0) {
memmove(str, str + start, end - start + 2);
}
}
return str;
}
3. 字符串分隔
以同时用多个字符分隔,delimiter 为字符串时候,是对delimiter每个字符都作为分隔符,比如"abc",分隔符分别为a 或 b 或 c
int splitStringByChars(const char* inputStr, const char * delimiter, char* outputStrs[]) {
int len = strlen(inputStr);
char *tempStr = (char *)malloc(len+1);
memcpy(tempStr,inputStr,len+1);
char* token = strtok(tempStr, delimiter);
int count = 0;
while (token != NULL) {
outputStrs[count] = token;
token = strtok(NULL, delimiter);
count++;
}
return count;
}
C语言字符串常用函数解析

被折叠的 条评论
为什么被折叠?



