#toggle the string
#include <stdio.h>
int main()
{
char S[100],ch;
int i=0;
gets(S);
while((S[i]!='\0')&&(i<100))
{
ch=S[i];
if((ch>='A')&&(ch<='Z'))
S[i]+=32;
else if((ch>='a')&&(ch<='z'))
S[i]-=32;
i++;
}
printf("%s\n",S);
return 0;
}
请让我知道代码有什么问题(代码是将字符串I.e.大写切换为小写,反之亦然。我收到SIGABRT运行时错误...
答案 0 :(得分:0)
以下提议的代码:
fgets()
从stdin 现在是代码:
#include <stdio.h> // fgets(), printf()
#include <ctype.h> // toupper(), tolower(), isupper(), islower()
int main( void )
{
char S[100];
//gets(S);
if( fgets( S, sizeof( S ), stdin ) )
{
for( size_t i=0; S[i]; i++ )
{
if( isupper( S[i]) )
S[i] = (char)tolower( S[i] );
else if( islower( S[i] ) )
S[i] = (char)toupper( S[i] );
}
printf("%s\n",S);
}
return 0;
} // end function: main