给出一个英文单词,要求前面有几个空格,后面有几个空格,这种要运用什么来进行控制
1 取得单词长度len
2 记录没遇到字符 遇到第一个空格的位置 front_spa_pos_start
3 记录遇到第一个字符的位置 word_pos_start
4 记录字符结束的位置word_pos_end
5 记录后边原有空格的个数
6 在最后补全或删除空格
// caimi7.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <string>
int _tmain(int argc, _TCHAR* argv[])
{
char word[] = " kailadescope ";
printf("%s", word);
printf("\n");
int ilen = strnlen(word, sizeof(word));
char cTemp = ' ';
bool bFound_spa = false;
bool bFound_wrodstart = false;
int iWordCount = 0;
int word_pos_start = 0;
int word_pos_end = 0;
int front_spa_pos_start = 0;
for (int i = 0; i < ilen; i++)
{
cTemp = *(word + i);
if ((cTemp - ' ') == 0)
{
if (bFound_spa == false)
{
bFound_spa = true;
front_spa_pos_start = i;
}
else if (bFound_spa==true)
{
word_pos_end = i;
}
}
else if ((cTemp>='a' && cTemp<='z') || (cTemp>='A' && cTemp<='Z'))
{
if (bFound_wrodstart == false)
{
bFound_wrodstart = true;
word_pos_start = i;
}
iWordCount++;
}
}
// 前面有空格数
int iFrontSpaNum = word_pos_start - front_spa_pos_start;
char newWord[WCHAR_MAX] = { '\0'};
memcpy(newWord, word, word_pos_end+1);
for (int i = 0; i < iFrontSpaNum; i++)
{
memcpy(newWord + word_pos_end + i, " ", 1);
}
printf("前面有%d个空格", iFrontSpaNum);
printf("\n");
printf("%s", newWord);
_tsystem(L"pause");
return 0;
}