我最近试图编写一个程序来转义字符串中的转义序列。一切看起来都很好,当我测试程序时还没有错误消息,没有任何打印。
#include <stdio.h>
#define MAXLINE 1000
void escape(char s[], char t[]);
int main () {
char s[MAXLINE], t[MAXLINE];
int i, c;
for (i = 0; (c = getchar()) != EOF; i++)
c = s[i];
s[i] = '\0';
escape(s, t);
printf("%s\n",t);
return 0;
}
void escape(char s[], char t[]) {
int j = 0, i;
for (i = 0; s[i] != '\0'; i++) {
switch (s[i]) {
case '\n':
t[j] = '\\';
t[++j] = 'n';
++j;
break;
case '\t':
t[j] = '\\';
t[++j] = 't';
++j;
break;
default:
t[j] = s[i];
++j;
break;
}
}
t[j] = '\0';
}
谢谢。
最佳答案
main
函数中的 for 循环应该是:
for (i = 0; (c = getchar()) != EOF; i++)
s[i] = c;
关于c - 奇怪的行为 printf - c lang,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39188194/