‘壹’ c语言输入一段英文,单词之间有很多空格或者是换行,要求去掉不该出现的空格或者是换行。
很久没碰C语言,可能有些思路不对,但我尽量按照C语言的方式给出思路:C应该是数组的形式存储字符串,那么你可以给一个flag,我给出大概的Python代码的实现逻辑:
迁移到C语言的逻辑实现也一样。
大概就是这个思路。如果你的目的是存到另一个数组,那么可以先计算出目标数组的长度,记得C语言要求在定义时给出长度,计算方式类似于上面的打印逻辑。再将元素添加进去
‘贰’ 用C语言编辑,输入一个英文句子,删除句子的前导空格和后导空格,并使单词之间只有一个空格。
#include "stdio.h"
void RemoveBlank(char* szWords)
{
char *pszRead, *pszWrite;
int bBlankFlg;
bBlankFlg = 0;
pszWrite = pszRead = szWords;
while(' ' == *pszRead) pszRead++;
while('\0' != *pszRead)
{
if(' ' != *pszRead)
{
if(bBlankFlg)
{
bBlankFlg = 0;
*pszWrite = ' ';
pszWrite++;
}
*pszWrite = *pszRead;
pszWrite++;
}
else if(!bBlankFlg)
bBlankFlg = 1;
pszRead++;
}
while(pszWrite < pszRead) *(pszWrite++) = '\0';
}
int main()
{
//char* szSrc = " Hello , my name is Bill. ";
char szWords[100] = {0};
//strcpy(szWords, szSrc);
gets(szWords);
RemoveBlank(szWords);
printf(szWords);
//system("pause");
return 0;
}
‘叁’ C语言删除空格问题
对源字符串进行逐一字符自己向自己拷贝操作,遇到空格时跳过即可完成。举例代码如下:
//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
intmain(void){
charstr[]="Moonlightisinbrontofmybed.1234567890";
inti,j;
for(j=i=0;str[i];i++)
if(str[i]!='')
str[j++]=str[i];
str[j]='