我想通过指针将小写字母转换为大写字母。下面的代码不起作用,它会引发一些错误。
#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