毕业后两年内的时间一直都是从事的C++方面的软件开发,可以说有一定的经验,但是每当去面试的时候,面对面试官提出的一些基本的C++题目还是有些吃力,所以决定静下心来从新开始学习C++,废话不多说。
有一个字符串开头或结尾含有n个空格(” abcdefgdddd ”),欲去掉前后空格,返回一个新字符串。
有两种写法,第一种
int trimSpace(const char *inBuf, char *outBuf)
{
int len = 0;
char* srcchead = NULL;
char* srctail = NULL;
if (inBuf == NULL || outBuf == NULL)
{
return -1;
}
srcchead = inBuf;
srctail = inBuf + strlen(inBuf) - 1;
while(*srcchead == ' ')
{
srcchead++;
}
while(*srctail == ' ')
{
srctail--;
}
len = srctail - srcchead + 1;
memcpy(outBuf, srcchead, len);
return 1;
}
//第二种
int trimSpace(const char *inBuf, char *outBuf)
{
int i = 0,j =0;
int nCount;
if (inBuf == NULL || outBuf == NULL)
{
return -1;
}
j = strlen(inBuf) - 1;
while (isspace(inBuf[i]) && inBuf[i] != '\0')
{
i++;
}
while (isspace(inBuf[j]) && j > 0)
{
j--;
}
nCount = j - i + 1;
strncpy(outBuf, inBuf + i, nCount);
return 0;
}
int main()
{
char *inBuf = " abcdefgdddd ";
char outBuf[100] = {0};
printf(" 去除空格前:%s", inBuf );
trimSpace(inBuf, outBuf);
printf(" 去除空格后:%s", outBuf);
return 0;
}