我現在有點空,我來幫妳~ ~ ~
至於妳說的“單獨顯示”,我理解為用逗號做分隔符。
逐個輸入子串,不知道是不是妳想要的效果。
=========================================
# include & ltstdio.h & gt
# include & ltstdlib.h & gt
# include & ltstring.h & gt
int FindStr(char * pszSource,char * pszDest)
{
int iDestLen,iSourLen,iLineCount = 1,I,j;
char cFind
iDestLen = strlen(PSZ dest);
iso urlen = strlen(PSZ source);
if(iso urlen & lt;iDestLen)
{
return-1;
}
for(I = 0;我& ltiSourLeni ++)
{
if (pszSource[i] == '\n ')
{
iline count++;
}
cFind = 1;
for(j = 0;j & ltiDestLenj ++)
{
if (pszSource[i + j]!= pszDest[j])
{
cFind = 0;
打破;
}
}
if (cFind == 1)
{
返回iLineCount
}
}
返回0;
}
void FormatPrintf(char * pszDest,char szDiv)
{
int iLen = strlen(pszDest),I,iCurPos
char SZ buffer[1024];
ICU rpos = 0;
for(I = 0;我& ltiLeni ++)
{
if (pszDest[i]!= szDiv)
{
SZ buffer[ICU rpos]= pszDest[I];
icurpos++;
}
其他
{
SZ buffer[ICU rpos]= 0;
if (iCurPos!= 0)
{
printf("%s\n ",SZ buffer);
ICU rpos = 0;
}
}
}
}
void main()
{
文件*文件;
char * pszFile =(char *)malloc(1024);
char * pszFind = "$GPRMC,121208,A,2510.1234,N,12520.4321,E,,,070410,,,* hh ";
int iReadCount
file = fopen("GPS.txt "," r ");
iReadCount = fread(pszFile,sizeof(char),1023,file);
fclose(文件);
if(iReadCount & gt;1023)
{
iReadCount = 1023;
}
PSZ file[iReadCount]= 0;
Printf("要搜索的字符串在第%d \ n行" \ n ",FindStr(pszFile,PSZ find));
FormatPrintf(pszFind,',');
返回;
}
=========================================
Ma_li_qiang說的沒錯,我的C不怎麽樣,因為我用的是MFC。
但是我的FindStr是有用的吧?
另外,行內比較不需要壹次比較壹個字符。
Strstr也行,但是我得算算在哪壹行。
所以還是要壹個壹個比較。
但是getline函數真的很方便。我以前不知道它的存在。
所以我寫了壹個~ ~ ~
至於我為什麽幫LZ寫這個程序。
因為我也是基金會出來的。
個人覺得有個源碼會更容易學。
敢問哪個不先看別人的代碼再自己寫?
誰生來就有?
我不認為每個人從壹開始就能理解像MSDN這樣大的文件。
也希望LZ能畫磚引玉,舉壹反三。