是否存在任何构建函数或替代简单快速的转义C
字符数组的方法,如果与例如printf
一起使用,则应该再次产生原始字符数组。
char* str = "tHello Worldn"; char* escaped_str = escape(str); //should contain "tHello Worldn" with char ,t. printf(escaped_str); //should print out [TAB]Hello World[nextline] similar to if str was printed.
c中是否有一种简单的方法来转义带有c转义字符的字符串。
更新
我有缓冲区包含一个带转义字符的字符串。 我想要包含在C文件中。 为此,我需要逃避它,以便它可以被遵守。 我只需要知道是否有简单的方法来做它而不是扫描缓冲区 n t等并生成c escape字符。
for(int i=0; i< strlen(buffer);i++) if(buffer[i]=='n') sprintf(dest,"\n") else ....
更新2
我写了这个函数。 它工作正常。
char* escape(char* buffer){ int i,j; int l = strlen(buffer) + 1; char esc_char[]= { 'a','b','f','n','r','t','v','\'}; char essc_str[]= { 'a', 'b', 'f', 'n', 'r', 't', 'v','\'}; char* dest = (char*)calloc( l*2,sizeof(char)); char* ptr=dest; for(i=0;i<l;i++){ for(j=0; j< 8 ;j++){ if( buffer[i]==esc_char[j] ){ *ptr++ = '\'; *ptr++ = essc_str[j]; break; } } if(j == 8 ) *ptr++ = buffer[i]; } *ptr='