69,369
社区成员
发帖
与我相关
我的任务
分享
char *zhengli(char *p)
{
char *q, *q1;
q = q1 = p;
while (*q1)
{
*q ++ = *q1;
if (*q1 ++ == ' ')
while (*q1 == ' ')
*q1 ++;
}
*q = '\0';
return p;
}
int main(int argc, char* argv[])
{
char s[]="this is a silly porgram";
printf("%s\n", zhengli(s));
system("pause");
return 0;
}
#include <tchar.h>
#include <assert.h>
#include <stdlib.h>
#include <stdio.h>
TCHAR* MergeWhiteSpace(TCHAR* sourceBuf = NULL);
int main(int argc, char* argv[])
{
TCHAR* srcStr = _T(" Hello World! \n");
printf(srcStr);
TCHAR* resultStr = MergeWhiteSpace(srcStr);
if (NULL == resultStr)
exit(EXIT_FAILURE);
printf(resultStr);
free(resultStr);
getchar();
return 0;
}
TCHAR* MergeWhiteSpace(TCHAR* sourceBuf)
{
if (NULL == sourceBuf)
return NULL;
int bufSize = _tcslen(sourceBuf) + sizeof(TCHAR);
TCHAR* buf = (TCHAR*)malloc(bufSize);
assert(NULL != buf);
TCHAR* resultStr = buf;
memset(buf, 0x00, bufSize * sizeof(TCHAR));
bool isWhite = false;
while (*sourceBuf)
{
if (*sourceBuf != 0x20)
{
if (isWhite)
*buf++ = 0x20;
*buf++ = *sourceBuf++;
isWhite = false;
}
else
{
sourceBuf++;
isWhite = true;
continue;
}
}
return resultStr;
}