我试图用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);
}
答案 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'));
}