我想把我用大写写的东西转过来。但我不知道该怎么做。 这是我的代码:
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <ctype.h>
int main(){
char buffer[50];
int retorno, leido, c;
while( (leido = read(0,&buffer,sizeof buffer)) > 0){
retorno = write(1,&buffer,leido);
}
printf ("valor de retorno: %d\n", retorno);
if (retorno<0){
return -1;
}
return 0;
}
答案 0 :(得分:0)
您需要toupper
每个字符,例如
while( (leido = read(0,&buffer,sizeof buffer)) > 0){
for (int i=0; i<leido; i++) {
buffer[i] = toupper((unsigned char)buffer[i]);
}
retorno = write(1,&buffer,leido);
}
答案 1 :(得分:0)
您可以在写入函数调用之前更新缓冲区,如下所示:
char *p = buffer;
for ( ; *p; ++p) *p = toupper(*p);
确保缓冲区读取是C中的正确字符串。