C语言从配置文件中取得的字符串 如何将通配符替换为真实的字符串
#
XP_CertInportCommand = "certutil.exe"
#
XP_UserCertInportExec = "-p $$P -importpfx -user $$U"
上面是配置文件,程序中已取得2个字符串 char*passWord="pass123";char*UserFileName="User.p12";
如何将$$P替换为pass123,$$U替换为User.p12,然后调用exe程序,将参数传入,也就是执行
> certutil.exe -p pass123 -importpfx -user User.p12
[解决办法]
笨一点的方法,str1就是你所需的参数:
char str1[100]="-p "
char str2[100]=" -importpfx -user "
strcat(str1, passWord);
strcat(str1, str2);
strcat(str1, UserFileName);
#include <stdio.h>
#include <string.h>
char s[256];
char *p;
int r,n,i;
int main() {
while (1) {
printf("请输入一行文字(空行结束),"%%20"将替换为" ","你懂得"将替换为"XXXXXX":\n");
fgets(s,256,stdin);
if ('\n'==s[0]) break;
p=s;
while (1) {
p=strstr(p,"%20");
if (p) {
memmove(p+1,p+3,strlen(p)-3+1);
p[0]=' ';
} else break;
}
p=s;
while (1) {
p=strstr(p,"你懂得");
if (p) {
memmove(p+6,p+6,strlen(p)-6+1);
for (i=0;i<6;i++) p[i]='X';
} else break;
}
printf("%s",s);
}
return 0;
}
//请输入一行文字(空行结束),"%20"将替换为" ","你懂得"将替换为"XXXXXX":
//abcdefg%20helloworld%20something.pdf
//abcdefg helloworld something.pdf
//请输入一行文字(空行结束),"%20"将替换为" ","你懂得"将替换为"XXXXXX":
//这是测试文字你懂得,在这个你懂的地方,就得做你懂得的事
//这是测试文字XXXXX,在这个你懂的地方,就得做XXXXX的事
//请输入一行文字(空行结束),"%20"将替换为" ","你懂得"将替换为"XXXXXX":
//