C語言判斷字串內容
阿新 • • 發佈:2019-01-31
// 判斷字串開頭是不是回車換行('\n'或'\r'),如果不是返回0,如果是,返回有幾個這樣的字元。
int isNewLine(char* acStr)
{
int iSize = 0;
if(acStr[0] == '\n' || acStr[0] == '\r')
{
iSize ++; acStr ++;
while(acStr[0] == '\n' || acStr[0] == '\r') {iSize ++; acStr ++;}
}
return iSize;
}
// 判斷字串是不是空白字元(小於 '!' 大於 '\0' 的字元),如果不是返回0,如果是,返回有幾個這樣的字元。 int isSpace(char* acStr) { int iSize = 0; if((acStr[0] < '!') && (acStr[0] > '\0')) { iSize ++; acStr ++; while((acStr[0] < '!') && (acStr[0] > '\0')) {iSize ++; acStr++;} } return iSize; }
// 判斷字串是不是整數(小於 '9' 大於 '0' 的字元),如果不是返回0,如果是,返回有幾個這樣的字元。
int isInt(char* acStr)
{
int iSize = 0;
if(acStr[0] >= '0' && acStr[0] <= '9')
{
iSize ++; acStr ++;
while(acStr[0] >= '0' && acStr[0] <= '9') {iSize ++; acStr ++;}
}
return iSize;
}
// 判斷字串是不是小數(小於 '9' 大於 '0' 的字元,並且數字中間有一個點),如果不是返回0,如果是,返回有幾個這樣的字元。 int isFloat(char* acStr) { int iSize = 0, iDotNum = 0; if(acStr[0] >= '0' && acStr[0] <= '9') { iSize ++; acStr ++; while((acStr[0] >= '0' && acStr[0] <= '9') || acStr[0] == '.') { if(acStr[0] == '.') iDotNum ++; if(iDotNum > 1) break; iSize ++; acStr ++; } } return iSize; }
// 判斷字串是不是十六進位制數字(以0x開頭,含有'0'-'9','A'-'F'的字串),如果不是返回0,如果是,返回有幾個這樣的字元。 int isHex(char* acStr) { int iByteNum = 0; if(acStr[0] == '0' && (acStr[1] == 'x' || acStr[1] == 'X')) { iByteNum += 2; acStr += 2; while(acStr[0] !='\0') { if(!((acStr[0]>='0' && acStr[0]<='9') || (acStr[0]>='a' && acStr[0]<='f') || (acStr[0]>='A' && acStr[0]<='F'))) break; else iByteNum ++; acStr ++; } } return iByteNum; }
// 判斷字串是否沒到結尾
_Bool isNotEnd(char* acStr)
{
if(acStr[0] == '\0')
return 0;
else
return 1;
}
// 判斷字串是否到結尾了
_Bool isEnd(char* acStr)
{
if(acStr[0] == '\0')
return 1;
else
return b;
}
// 如果此指標指向的字串的開頭是一個英文單詞,返回英文單詞字母個數,否則返回 0
int isWord(char* acStr)
{
int iNum = 0;
if((acStr[0] >= 'A' && acStr[0] <= 'Z') || (acStr[0] >= 'a' && acStr[0] <= 'z'))
{
iNum ++;
acStr ++;
while(acStr[0] !='\0')
{
if(!(
(acStr[0] >= '0' && acStr[0] <= '9') ||
(acStr[0] >= 'A' && acStr[0] <= 'Z') ||
(acStr[0] >= 'a' && acStr[0] <= 'z') ||
(acStr[0] == '-') ||
(acStr[0] == '\'')
))
break;
else
iNum ++;
acStr ++;
}
}
return iNum;
}
// 如果此指標指向的字串的開頭不是一個英文單詞,返回英文單詞前有幾個位元組,否則返回 0
int isNotWord(char* acStr)
{
int iNum = 0;
if((acStr[0] < 'A') || (acStr[0] > 'Z' && acStr[0] < 'a') || (acStr[0] > 'z'))
{
iNum ++;
acStr ++;
while(acStr[0] !='\0')
{
if(
(acStr[0] >= 'A' && acStr[0] <= 'Z') ||
(acStr[0] >= 'a' && acStr[0] <= 'z')
)
break;
else
iNum ++;
acStr ++;
}
}
return iNum;
}
// 如果此指標指向的字串的開頭是字串(被雙引號包含),返回有幾個位元組,否則返回 0
int isString(char* acStr)
{
int iByteNum = 0;
char* pcSearchA = acStr;
char* pcSearchB = NULL;
if(pcSearchA[0] == '\"' && pcSearchA[-1] != '\\')
{
pcSearchB = pcSearchA + 1;
while(pcSearchB[0] !='\0')
{
if(pcSearchB[0] == '\"' && pcSearchB[-1] != '\\')
{
iByteNum = pcSearchB - pcSearchA + 1;
return iByteNum;
}
pcSearchB++;
}
iByteNum = (U64)(pcSearchB - pcSearchA);
}
return iByteNum;
}