C/C++读取文件,如何获取 指定字符串 前面字符串的位置?大虾们,帮帮忙吧
我的str.txt文件里面的内容是:E:\TMS\ConfS1_xxxx@xxx.com\CreatDir.exeE:\TMS\ConfS2_xxxx@xxx.com\C...
我的str.txt文件里面的内容是:
E:\TMS\ConfS1_xxxx@xxx.com\CreatDir.exe
E:\TMS\ConfS2_xxxx@xxx.com\CreatDir.exe
E:\TMS\ConfS_xxxx@xxx.com\CreatDir.exe
E:\TMS\ConfS3_xxxx@xxx.com\CreatDir.exe
E:\TMS\ConfS4_xxxx@xxx.com\CreatDir.exe
我要获取:
E:\TMS\ConfS_xxxx@xxx.com\CreatDir.exe这一个路径,我现在只知ConfS_xxxx@xxx.com这个字符串,我可以用strstr来获取这个指定字符串开始到后面的内容,但是ConfS_xxxx@xxx.com前面的E:\TMS\ 要怎么获取?一般的文件读写都是从头到尾,这个反向获取字符串,要怎么办呢?请各位高手帮帮忙吧,谢谢了。
或者有没有其它的办法?我要取这个路径用system()来启动这个程序? 展开
E:\TMS\ConfS1_xxxx@xxx.com\CreatDir.exe
E:\TMS\ConfS2_xxxx@xxx.com\CreatDir.exe
E:\TMS\ConfS_xxxx@xxx.com\CreatDir.exe
E:\TMS\ConfS3_xxxx@xxx.com\CreatDir.exe
E:\TMS\ConfS4_xxxx@xxx.com\CreatDir.exe
我要获取:
E:\TMS\ConfS_xxxx@xxx.com\CreatDir.exe这一个路径,我现在只知ConfS_xxxx@xxx.com这个字符串,我可以用strstr来获取这个指定字符串开始到后面的内容,但是ConfS_xxxx@xxx.com前面的E:\TMS\ 要怎么获取?一般的文件读写都是从头到尾,这个反向获取字符串,要怎么办呢?请各位高手帮帮忙吧,谢谢了。
或者有没有其它的办法?我要取这个路径用system()来启动这个程序? 展开
3个回答
更多追问追答
追问
不是要取这全部的这E:\TMS,是要取E:\TMS\ConfS_xxxx@xxx.com\CreatDir.exe这一行;我可以用strstr()获取到
ConfS_xxxx@xxx.com\CreatDir.exe
E:\TMS\ConfS3_xxxx@xxx.com\CreatDir.exe
E:\TMS\ConfS4_xxxx@xxx.com\CreatDir.exe
这个字符串,但这前面的E:\TMS\要怎么办获取呢?只要前面的一个E:\TMS
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
以下是strstr在msdn里的例子,你仔细看看,在使用strstr查找的时候是可以得到指针位置的,result = pdest - string + 1; 就是说你可以使用字符串的指针操作得到所查找到的位置之前的字符,具体你就自己实现吧,如果连指针操作都不会的话,我也没话说了
Example/* STRSTR.C */
#include <string.h>
#include <stdio.h>
char str[] = "lazy";
char string[] = "The quick brown dog jumps over the lazy fox";
char fmt1[] = " 1 2 3 4 5";
char fmt2[] = "12345678901234567890123456789012345678901234567890";
void main( void )
{
char *pdest;
int result;
printf( "String to be searched:\n\t%s\n", string );
printf( "\t%s\n\t%s\n\n", fmt1, fmt2 );
pdest = strstr( string, str );
result = pdest - string + 1;
if( pdest != NULL )
printf( "%s found at position %d\n\n", str, result );
else
printf( "%s not found\n", str );
}
OutputString to be searched:
The quick brown dog jumps over the lazy fox
1 2 3 4 5
12345678901234567890123456789012345678901234567890
lazy found at position 36
Example/* STRSTR.C */
#include <string.h>
#include <stdio.h>
char str[] = "lazy";
char string[] = "The quick brown dog jumps over the lazy fox";
char fmt1[] = " 1 2 3 4 5";
char fmt2[] = "12345678901234567890123456789012345678901234567890";
void main( void )
{
char *pdest;
int result;
printf( "String to be searched:\n\t%s\n", string );
printf( "\t%s\n\t%s\n\n", fmt1, fmt2 );
pdest = strstr( string, str );
result = pdest - string + 1;
if( pdest != NULL )
printf( "%s found at position %d\n\n", str, result );
else
printf( "%s not found\n", str );
}
OutputString to be searched:
The quick brown dog jumps over the lazy fox
1 2 3 4 5
12345678901234567890123456789012345678901234567890
lazy found at position 36
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以先一排排的读出来,再判断这一排是不是你需要的。如果是要找的就直接获取那一排就好了么,不是需要的就读取下一排。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询