私の入力文字列は
\\?\bac#dos&ven_bb&prod_open-v&rev_5001#1&7f6ac24&0&353020304346333030363338#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}
必要な出力は
bac\dos&ven_bb&prod_open-v&rev_5001\1&7f6ac24&0&353020304346333030363338_0
次のコードを書きましたが、機能していません...問題を解決するために助けが必要です。私の無知を許してください:)それを行うためのより良い効率的な方法があれば教えてください。
出力文字列のルールは次のとおりです。
2 番目の文字列では、「\」と「?」をすべて削除しています。.そして、どこに「#」が表示されているかを「\」に置き換えます。2 番目の文字列は文字 "{" が表示されるまでのみですが、末尾に "#" は含まれません。
ありがとう
int main()
{
char s[] = "\\?\bac#dos&ven_bb&prod_open-v&rev_5001#1&7f6ac24&0&353020304346333030363338#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}";
char s1[] = {0};
printf("OUtput string is : ");
for(int i = 0; s[i] != '{'; i++)
{
if(s[i] != '\\' && s[i] != '?')
{
int j = 0;
if(s[i] == '#')
{
s1[j] = '\\';
continue;
}
s1[j] = s[i];
j++;
}
}
for(int i = 0; s1[i] != '\0'; i++)
{
cout<<s1[i];
}
getch();
}