大文字を小文字に、小文字を大文字にするプログラム
問題は、
ファイルにあるアルファベットの大文字を小文字に変換し、小文字は大文字に変換して、ファイルに保存するプログラムを作りなさい
というものです。
色々考えて、
#include <stdio.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <unistd.h>
#include <ctype.h>
int main(int argc,char **argv){
int fd,flag1,flag2;
int i,n;
char buffer[512],x;
fd = open(argv[1],O_RDWR);
if(fd == -1)
perror("open");
while((n = read(fd,buffer,sizeof(buffer)))>0){
x = buffer[i];
flag1 = islower(x);
flag2 = isupper(x);
for(i=0;i<n;++i)
if(flag1 == 1){
buffer[i] = toupper(buffer[i]);
}else if(flag2 == 1){
buffer[i] = tolower(buffer[i]);
}
write(fd,buffer,n);
}
close(fd);
exit(0);
}
のようなプログラムを考えましたが、うまくいきません。
toupperのような関数を使ったのは初めてなのでよく使い方が分からずこのようなプログラムになってしまいました。
どうか正しく動くようなプログラムを教えてください。お願いします。
お礼
できました。早々のお返事有難うございました。