ポインターを使用して小文字を大文字に変換したい。以下のコードは機能せず、エラーが発生します。
#include<stdio.h>
int main()
{
char somearray[10]; char mask;
mask = 1 << 5;
mask = ~mask;
char *someptr;
gets(somearray);
puts(somearray);
someptr =&somearray[0];
while (*someptr != '\n')
{
*someptr = *someptr & mask ;
someptr++;
}
printf("%s",someptr);
return 0;
}
エラーが発生しました:
not able to compile , if compiled runtime error
以下のコードでも機能しません。
#include <stdio.h>
int main()
{
char somearray[10];
char mask;
char *someptr;
mask = 1 << 5;
mask = ~mask;
fgets( somearray, sizeof(somearray), stdin ); /* gets() is suspect: see other reactions */
puts(somearray);
for ( someptr = somearray; *someptr != '\0';someptr++)
{
*someptr &= mask ;
}
printf("%s",someptr);
return 0;
}
入力: abcd 出力: abcd.、予想: ABCD