如字符串”abc123de4fg56”处理后变为”abcdefg”。注意空间和效率。(下面的算法只需要一次遍历,不需要开辟新空间,时间复杂度为O(N))。
#include "stdafx.h"
void delNum(char *str)
{
int i, j=0;
// 找到串中第一个数字的位子
for(i=j=0; str && (str<'0' || str>'9'); j=++i)
;
// 从串中第一个数字的位置开始,逐个放入后面的非数字字符
for(; str; i++)
if(str<'0' || str>'9')
str[j++] = str;
str[j] = '\0';
}
int main(int argc, char* argv[])
{
char str[] = "abc123ef4g4h5";
printf("%s\n", str);
delNum(str);
printf("%s\n", str);
}