奇怪的行为printf - c lang

时间:2016-08-28 05:07:30

标签: c

我最近试图制作一个程序来逃避字符串中的转义序列。一切都很好,当我测试程序时没有任何错误消息,没有任何打印。

#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';
}

谢谢。

2 个答案:

答案 0 :(得分:2)

def __init__(self, *, c1, c2, **kwargs):函数中的for循环应为:

SADD friends "mike"
SADD enemies "mike" "john"
SINTERSTORE friends friends enemies

答案 1 :(得分:2)

您正在使用

 c = s[i];

而不是

 s[i] = c;
在for循环中

。因此,s永远不会被初始化。