给出一个英文单词,要求前面有几个空格,后面有几个空格,这种要运用什么来进行控制
1条回答 默认 最新
胸毛男 2021-10-14 14:53关注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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 1无用