こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

ファイルの入出力を行って文字を変換する

入力するファイルにa~zを記入しておき、
出力するファイルにaなら1、bなら2、zなら26に変換させたいのですがどうしたらよいでしょうか?

#include <stdio.h>
#include <string.h>

#define DELIMITER "/ ," /* 区切り文字 */

int main(void)
{

FILE*fin,*fout;
intcount=0;
inti;
chars[256], s2[256];
charalpha[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
intkazu[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26};
char*taken;
char*strch[50];

if( (fin=fopen("file1.txt","r"))==NULL) {
printf("入力ファイルがオープンできません\n");
exit(EXIT_FAILURE);
}
if( (fout=fopen("file2.txt","w"))==NULL) {
printf("出力ファイルがオープンできません\n");
exit(EXIT_FAILURE);
}
while(fgets(s,256,fin)!=NULL) {
while (token != NULL)
{
strch[count]=token;
token = strtok(NULL, DELIMITER);
count++;
}
memset(s2, NULL, sizeof(s2));

fprintf(fout,"%d\n",s2);
}
fclose(fin);
fclose(fout);
return 0;
}

投稿日時 - 2008-05-15 12:50:14

QNo.4023935

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

#include <stdio.h>
#include <string.h>

int conv(char c)
{
char *p, *a = "abcdefghijklmnopqrstuvwxyz";

if((p = strchr(a, c)) != NULL) return p - a + 1;
return 0;
}

int conv2(char c)
{
int p;

if(0 <= (p = c - 'a') && p <= 26) return p + 1;
return 0;
}

int main(void)
{
char *a = "abcdefghijklmnopqrstuvwxyz,.;:";
int i;

for(i = 0; i < 30; i ++){
printf("'%c' == %d %d\n", a[i], conv(a[i]), conv2(a[i]));
}
return 0;
}

投稿日時 - 2008-05-15 17:55:19

お礼

ありがとうございました

投稿日時 - 2008-05-16 10:42:33

あなたにオススメの質問