一起使用char和int

时间:2016-10-31 15:48:41

标签: c text char int

我试图用char来识别文本的结果。

例如,我有一个file.txt,其中包含如下字母:iiixxiix

我想用数字代替i:123xx67x等等。

我应该怎么做才能获得这样的结果?我似乎无法使用int来替换char(srt [i] = c;),我不知道如何从问题中解脱出来。

#include <stdio.h>

int main()
{
   FILE *fp;
   char str[60];
   int i;
   int c = 1;

   /* opening file for reading */
   fp = fopen("file.txt" , "r");
   if(fp == NULL)
   {
      perror("Error opening file");
      return(-1);
   }
   if( fgets (str, 22, fp)!=NULL )
   {
     for (i = 0; i < 22; i++)
     {
         if (str[i] == 'i')
         {
             str[i] = '0';
         }
        printf("%c", str[i]);
     }
   }
   fclose(fp);

   return(0);
}

1 个答案:

答案 0 :(得分:0)

C规范要求所有数字字符都是连续编码的。如果您查看常用且常用的ASCII encoding,您会看到数字从48编码为57

这意味着使用整数索引i(模10)并添加'0'来获取字符非常容易。

简单示例:

for (int i = 0; i < 22; ++i)
{
    printf("Index %d to character '%c'\n", i, (char) (i % 10 + '0'));
}