今日散分帖,结帖了,呵呵。
为什么只能输入100分呢?太少了,你觉得呢?顺便出一题吧:
切去字符串左边空格。该函数有什么问题?
char * leftTrim(char *str)
{
while(*str != 0x20)
{
str ++;
}
return str;
}
答不对也可以得分。
测试代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#if 1
char * leftTrim(char *str)
{
while(*str == 0x20)
{
str ++;
}
return str;
}
#endif
int main()
{
char *str = "ab cd"; //中间有空格的情况
char *str1 = " ab cd"; //前面也有空格的情况
char str2[] = " ab cd"; //数组的情况
char str3[] = "abcd"; //没有空格的情况
char str4[] = ""; //空字符串的情况
char *str5 = (char *)malloc(15 * sizeof(char)); //动态分配的情况
strcpy(str5, " ab cd");
printf("string0 is :%s\n", leftTrim(str));
printf("old str1 is :%s\n", str1);
printf("string1 is :%s\n", leftTrim(str1));
printf("string2 is :%s\n", leftTrim(str2));
printf("string3 is :%s\n", leftTrim(str3));
printf("string4 is :%s\n", leftTrim(str4));
str5 = leftTrim(str5);
printf("string5 is :%s\n", str5);
free(str5); 《《-----VC6下面这里会崩溃
return 0;
}
大家思考一下这个函数应该怎么写才会正确?
[ 本帖最后由 hellovfp 于 2011-8-7 12:09 编辑 ]