//去除字符串中全部的空字符
void delAllSpace(char* soucre) {
if (soucre == NULL) {
printf("delAllSpace: 传参错误");
return;
}
//strlen() 计算的时数据的真实长度 ,不包含'\0'
char* pev = soucre; //字符串前指针
//strlen 计算的总数, str下标从0开始,-1后正好===总数
char* end = soucre + (strlen(soucre) - 1); //字符串的从后向前找空字符的指针
char Buf[100] = { 0 }; //最后找到的 有效字符串
//isspace 为空返回非0
/*
为空则指针向后移动一位
pev==end 说明指针已经到最后了
只有前面有空格或者没有有效字符
*/
int pv = 0;
if (strlen(soucre) > 0) {
while (1) {
if (isspace(*pev) == 0 && pev <= end) {
//if (pv != 0) { printf("字符[%c]前,无效字符数 = %d\n", *pev, pv); }
pv = 0;
//找到有效字符就向buf中拼接一个
strncat(Buf, pev, 1);
}
else {
pv++; //累计空字符
/*为空字符并且是字符串de最后一个,将打印有效字符往后的无效字符个数*/
if (isspace(*pev) && pev == end) {
if (strlen(Buf) == 0) {
printf("空串\n");
}/*
else {
printf("字符[%c]后,无效字符数 = %d\n", Buf[strlen(Buf) - 1], pv);
}*/
}
}
//指针到最后则退出循环
if (pev == end) { break; }
//指针后移
pev++;
};
if (strlen(Buf) > 0) {
printf("Buf = %s\n", Buf);
}
}
else {
printf("此串是真空串\n");
}
}
c语言去除字符串中全部的空字符
最新推荐文章于 2022-03-24 22:24:00 发布