我有一个字符串(文件名),我想在字符之间提取一个字符串,例如:
string="/export/aibn84_2/SED/Sbc_cww.sed"
我需要将字符串存储在数组的最后"/"
和"_cww.sed"
之间,以便稍后使用它。
有人可以给我一些提示吗?
P.S。如果我想读取一个文件列表并将它们的名称分开,然后定义一个字符串数组并将它们保存在数组的元素中,我该如何应用它?
答案 0 :(得分:0)
有两种功能正在使用中:
strrchr
- >找到字符串
strncpy
- >从字符串
strstr
- >返回指向str1
char str[] = "/export/aibn84_2/SED/Sbc_cww.sed";
char* pch;
pch=strrchr(str,'/');
char* pch2;
pch2=strstr(str,"_cww.sed");
char value[40];
strncpy(value, pch+1, pch2-(pch+1));
printf("%s\n", value);
答案 1 :(得分:0)
#include<stdio.h>
#include<string.h>
int main(){
char str[] = "/export/aibn84_2/SED/Sbc_cww.sed"; // define the full array
char *str_start = strrchr(str, '/')+1; // locat the first character after the last '/'
char *str_end = strstr(str_start, "_cww.sed"); // locat "_cww.sed" after the last '/'
char str_new[str_end-str_start+1]; // define the new array
strncpy(str_new, str_start, str_end-str_start); // copy the elements bitween the start and the and
str_new[str_end-str_start] = '\0'; // terminate the new array with the null character
puts(str_new); // print the new array
return 0;
}