1、有一个字符串开头或结尾含有n个空格(” abcdefgdddd ”),欲去掉前后空格,返回一个新字符串。
要求1:请自己定义一个接口(函数),并实现功能;70分
要求2:编写测试用例。30分
int trimSpace(char *inbuf, char *outbuf);
int trimSpace03(char *p, char *newstr)
{
if (p == NULL || newstr == NULL)
{
printf("p == NULL || count == NULL");
return -1;
}
int i = 0;
int j = strlen(p) - 1;
while (isspace(p[i]) && p[i] != '\0')
{
i++;
}
while (isspace(p[j]) && p[j] != '\0')
{
j--;
}
int AllCount = j - i + 1;
p = p + i;
strncpy(newstr, p, AllCount);
newstr[AllCount] = '\0';
return 0;
}
2、有一个字符串”1a2b3d4z”,;
要求写一个函数实现如下功能,
功能1:把偶数位字符挑选出来,组成一个字符串1。valude;20分
功能2:把奇数位字符挑选出来,组成一个字符串2,valude 20
功能3:把字符串1和字符串2,通过函数参数,传送给main,并打印。
功能4:主函数能测试通过。
int getStr1Str2(char *souce, char *buf1, char *buf2);
int getStr1Str2(char *souce, char *buf1, char *buf2)
{
int ret = 0;
if (souce == NULL || buf1 == NULL || buf2 == NULL)
{
ret = -1;
return ret;
}
char *Odd = souce + 1;
char *Even = souce;
char *End = souce + strlen(souce) - 1;
char *tmp = buf1;
while (*Odd != '\0')
{
*tmp = *Odd;
Odd += 2;
tmp++;
}
tmp = '\0';
tmp = buf2;
while (*Even != '\0')
{
*tmp = *Even;
Even += 2;
tmp++;
}
tmp = '\0';
return ret;
}
3、键值对(”key = valude”)字符串,在开发中经常使用;
要求1:请自己定义一个接口,实现根据key获取valude;40分
要求2:编写测试用例。30分
要求3:键值对中间可能有n多空格,请去除空格30分
注意:键值对字符串格式可能如下:
“key1 = valude1”
“key2 = valude2
“key3 = valude3”
“key4 = valude4”
“key5 = “
“key6 =“
“key7 = “
int getKeyByValude(char *keyvaluebuf, char *keybuf, char *valuebuf, int * valuebuflen);
int main()
{
getKeyByValude(“key1 = valude1”, ” key1”, buf, &len);
}
int getKeyByValue(char *keyvaluebuf, char *keybuf, char *valuebuf)
{
char *p = NULL;
int ret = 0;
if (keyvaluebuf == NULL || keybuf == NULL || valuebuf == NULL)
{
ret = -1;
printf("keyvaluebuf == NULL || keybuf == NULL || valuebuf == NULL err:%d", ret);
return ret;
}
//1 查找key 是否再母串中
p = strstr(keyvaluebuf, keybuf);
if (p == NULL)
{
printf("未在母串中找到你要查找的key!\n");
return -1;
}
//让辅助指针变量重新到达下一次检索的条件
p = p + strlen(keybuf);
//2 判断是否有等于号
p = strstr(p, "=");
if (p == NULL)
{
printf("没有等于号!\n");
return -1;
}
//3去除等于号后面的空格
//让辅助指针变量重新到达下一次检索的条件
p = p + strlen("=");
trimSpace03(p, valuebuf);
return ret;
}