//1、有一个字符串开头或结尾含有n个空格(” abcdefgdddd ”),欲去掉前后空格,返回一个新字符串。
//要求1:请自己定义一个接口(函数),并实现功能;70分
//要求2:编写测试用例。30分
//int trimSpace(char *inbuf, char *outbuf);
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
int trimSpace(char *inbuf, char *outbuf)
{
int ret = 0;
if (inbuf==NULL||outbuf==NULL)
{
ret = -1;
printf("func err:inbuf==NULL||outbuf==NULL");
return ret;
}
char *tmpin = inbuf;
char *tmpout = outbuf;
int i = 0;
int j = 0;
while (*(tmpin + i) != '\0')
{
if (*(tmpin + i) != ' ')
{
*(tmpout + j) = *(tmpin + i);
i++;
j++;
}
else
{
i++;
}
}
tmpout[j] = '\0';
return ret;
}
int trimSpace1(char *inbuf, char *outbuf)
{
int ret = 0;
if (inbuf == NULL || outbuf == NULL)
{
ret = -1;
printf("func err:inbuf==NULL||outbuf==NULL");
return ret;
}
char *tmpin = inbuf;
char *tmpout = outbuf;
int i = 0;
int j = 0;
//注意' '跟'\0'不一样
while ((*(tmpout + j) = *(tmpin + i)) == ' ') i++;
while ((*(tmpout + j) = *(tmpin + i)) != ' ' && (*(tmpout + j) = *(tmpin + i)) != '\0' ) i++, j++;
tmpout[j] = '\0';
return ret;
}
int main0401()
{
char *p = " abcdefgdddd ";
char str[50];
int ret = 0;
//ret=trimSpace(p,str);
//ret = trimSpace1(p, str);
if (ret!=0)
{
printf("func err:inbuf==NULL||outbuf==NULL");
return ret;
}
printf("str:%s\n",str);
system("pause");
return 0;
}
int trimSpace2(char **inbuf, char **outbuf)
{
int ret = 0;
if (inbuf == NULL || outbuf == NULL)
{
ret = -1;
printf("func err:inbuf==NULL||outbuf==NULL");
return ret;
}
char *tmpin, *tmpout;
tmpin = (char *)malloc(100);
strcpy(tmpin, " abcdefgdddd ");
*inbuf = tmpin;
tmpout = (char *)malloc(100);
*outbuf = tmpout;
int i = 0;
int j = 0;
while (*(tmpin + i) != '\0')
{
if (*(tmpin + i) != ' ')
{
*(tmpout + j) = *(tmpin + i);
i++;
j++;
}
else
{
i++;
}
}
tmpout[j] = '\0';
return ret;
}
int main()
{
char *p = NULL;
char *p1 = NULL;//用这个就结果正常
//char p1[100];
//为什么用这个,结果报错 因为形参里面他在分配内存大小,你这两个内存大小不一样,不报错才怪,既然已经交给形参函数里分配大小,这里就不要去分配
int ret = 0;
ret = trimSpace2(&p, &p1);
if (ret != 0)
{
printf("func err:inbuf==NULL||outbuf==NULL");
return ret;
}
printf("p1:%s\n", p1);
system("pause");
return 0;
}
//要求1:请自己定义一个接口(函数),并实现功能;70分
//要求2:编写测试用例。30分
//int trimSpace(char *inbuf, char *outbuf);
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
int trimSpace(char *inbuf, char *outbuf)
{
int ret = 0;
if (inbuf==NULL||outbuf==NULL)
{
ret = -1;
printf("func err:inbuf==NULL||outbuf==NULL");
return ret;
}
char *tmpin = inbuf;
char *tmpout = outbuf;
int i = 0;
int j = 0;
while (*(tmpin + i) != '\0')
{
if (*(tmpin + i) != ' ')
{
*(tmpout + j) = *(tmpin + i);
i++;
j++;
}
else
{
i++;
}
}
tmpout[j] = '\0';
return ret;
}
int trimSpace1(char *inbuf, char *outbuf)
{
int ret = 0;
if (inbuf == NULL || outbuf == NULL)
{
ret = -1;
printf("func err:inbuf==NULL||outbuf==NULL");
return ret;
}
char *tmpin = inbuf;
char *tmpout = outbuf;
int i = 0;
int j = 0;
//注意' '跟'\0'不一样
while ((*(tmpout + j) = *(tmpin + i)) == ' ') i++;
while ((*(tmpout + j) = *(tmpin + i)) != ' ' && (*(tmpout + j) = *(tmpin + i)) != '\0' ) i++, j++;
tmpout[j] = '\0';
return ret;
}
int main0401()
{
char *p = " abcdefgdddd ";
char str[50];
int ret = 0;
//ret=trimSpace(p,str);
//ret = trimSpace1(p, str);
if (ret!=0)
{
printf("func err:inbuf==NULL||outbuf==NULL");
return ret;
}
printf("str:%s\n",str);
system("pause");
return 0;
}
int trimSpace2(char **inbuf, char **outbuf)
{
int ret = 0;
if (inbuf == NULL || outbuf == NULL)
{
ret = -1;
printf("func err:inbuf==NULL||outbuf==NULL");
return ret;
}
char *tmpin, *tmpout;
tmpin = (char *)malloc(100);
strcpy(tmpin, " abcdefgdddd ");
*inbuf = tmpin;
tmpout = (char *)malloc(100);
*outbuf = tmpout;
int i = 0;
int j = 0;
while (*(tmpin + i) != '\0')
{
if (*(tmpin + i) != ' ')
{
*(tmpout + j) = *(tmpin + i);
i++;
j++;
}
else
{
i++;
}
}
tmpout[j] = '\0';
return ret;
}
int main()
{
char *p = NULL;
char *p1 = NULL;//用这个就结果正常
//char p1[100];
//为什么用这个,结果报错 因为形参里面他在分配内存大小,你这两个内存大小不一样,不报错才怪,既然已经交给形参函数里分配大小,这里就不要去分配
int ret = 0;
ret = trimSpace2(&p, &p1);
if (ret != 0)
{
printf("func err:inbuf==NULL||outbuf==NULL");
return ret;
}
printf("p1:%s\n", p1);
system("pause");
return 0;
}