#include "stdio.h" #define FOR_TEST #define MAX_WORD_LEN 50 #define MAX_WORD_NUM 128 #define MAX_STRING_LEN 1024 char achWord[MAX_WORD_NUM][MAX_WORD_LEN] = {0}; #ifdef FOR_TEST char achTmp[MAX_STRING_LEN] = {"my@1ping423get123"}; #else char achTmp[MAX_STRING_LEN] = {0}; #endif int IsCharUpperT(char c) { return ((c >= 'A' && c <= 'Z') ? 1 : 0); } int IsCharLowerT(char c) { return ((c >= 'a' && c <= 'z') ? 1 : 0); } int main(void) { char *pStr = NULL; int nIdx = 0; int nWordIdx = 0; int nLoop = 0; int nFlag = 0; #ifdef FOR_TEST #else printf("input a string for count word:"); scanf("%s", achTmp); #endif pStr = achTmp; printf("the string is: %s/n/n", achTmp); while (*pStr) { if (IsCharUpperT(*pStr) || IsCharLowerT(*pStr)) { achWord[nIdx][nWordIdx++] = *pStr; nFlag = 1; } else { if (nFlag) { nIdx++; nWordIdx = 0; nFlag = 0; } } pStr++; } printf("count %d words list:/n", nIdx); nWordIdx = 0; for (nLoop = 0; nLoop < nIdx; nLoop++) { printf("/t%s/n", achWord[nLoop]); } return 0; }