不知道为什么我的字符串的第一个字母没有用C打印?

时间:2014-04-10 02:43:04

标签: c

我正在测试以确保我的文件读取并且我的转换为大写正常,但是当我打印数组时,数组中的第一个字母不会显示在输出中。这是有问题的功能:

int processFile(){
  int i;
  i = 0;
  if (!(fp = fopen("congress.txt", "r"))) {
    printf("congress.txt could not be opened for input.");
    exit(1);
  }

  while (!feof(fp)){
    fscanf(fp, "%c", &origFile[i]);
    i++;
  }

  for (i = 0; i <= SIZE; i++){
    if (origFile[i] >= 'a' && origFile[i] <= 'z') upperFile[i] = origFile[i] -= 32;
  }

  for(i = 0; i <= SIZE; i++){
    printf("%c",upperFile[i]);
  }
}

1 个答案:

答案 0 :(得分:3)

我猜测congress.txt中的第一个字符是一个大写字符。如果你看一下这条线:

 if (origFile[i] >= 'a' && origFile[i] <= 'z') upperFile[i] = origFile[i] -= 32;

正在跳过所有大写字符,而不是写入upperFile。您可能会在输出中注意到所有句子的首字母都缺失了。