我正在尝试使用 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);
}
最佳答案
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'));
}
关于c - 一起使用 char 和 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40345744/