c语言中字符串 x,使用c语言解析字符串176x144中的数字
在做jpeg codec的時候,經常需要輸入圖片的大小,即長和寬。對于一個jpeg圖片,它的大小幾乎是任意的,所以只能用數字來表示,而不能選擇cif,qcif等這類固定的圖片格式。在用數字表示圖片大小時,大家都習慣使用象176x144這樣格式。為了獲取長和寬,需要解析這個字符串。
下面,簡單介紹一下在c語言中如何對176x144的解析。
#include
int main()
{
char *str = "176x144";
char *pDest;
char strTmp[100];
int g_pic_wid,g_pic_hei;
//將str所指字符串拷貝一份,存儲在strTmp中,以供解析width
strcyp(strTmp,str);
//在strTmp中找到最后一個,即第一個出現的'x'的位置
pDest = strrchr((const char*)strTmp,(int)'x');
if(pDest)//如過找到了'x'
{
*pDest = '/0';//strTmp中的數據為“176/0144”,即截斷了后面的數據
//將“176”轉化為int類型
g_pic_wid = atoi(strTmp);
//在str中找到最后一個,即第一個出現的'x'的位置
pDest = strrchr((const char *)str, (int)'x');
if(!pDest)
pDest = str;
else
pDest++;//如果找到了,指向'x'的下一個位置
//將從pDest所指的位置往后的數據(即“144/0”)拷貝到strTmp中
strcyp(strTmp, pDest);
//將“144”轉化為int類型
g_pic_hei = atoi(strTmp);
}
printf("pictrue width:%d, height:%d !/n",g_pic_wid, g_pic_hei);
pDest = NULL;
return 0;
}
這段函數中,大家可能對strrchr函數不大熟悉,下面將會對其做一個詳細的介紹。
/*
Finds the last occurrence of ch in string.? The terminating null character is used as
part of the search.
查找在字符串中最后一次出現字符’ch’的位置。如果str中存在字符ch,返回出現ch的位置的指針;
否則返回NULL。
*/
#include
char * my_strrchr(const char * str,int ch)
{
char *p = (char *)str;
while (*str) str++;
while (str-- != p && *str != (char)ch);
if (*str == (char)ch)
return( (char *)str );
return(NULL);
}
int main()
{
char *str = "ammana_babi";
char * p;
char ch;
ch = '9';
p = (char *)my_strrchr(str,ch);
if(p == NULL)
printf("Can't find the character %c !/n",ch);
else
printf("Find the character %c !/n",*p);
ch = 'b';
p = (char *)my_strrchr(str,ch);
if(p == NULL)
printf("Can't find the character %c !/n",ch);
else
printf("Find the character %c !/n",*p);
system("pause");
return 0;
}
更多請看:http://www.chituwang.com/Article/IT/detail.aspx?articleid=18092
總結
以上是生活随笔為你收集整理的c语言中字符串 x,使用c语言解析字符串176x144中的数字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java core 生成路径_core文
- 下一篇: android webview 劫持,安