我正在尝试创建一个函数来识别第一个字母输入是大写还是小写,然后在相同的情况下(上/下)输出字符串的其余部分.
例如,"Hi there"会成为"HI THERE".
我不熟悉fgets.一旦我运行它,我可以输入并按Enter键,程序不会运行.我没有得到任何编译器错误.我相信我在虚空移位功能上出错了.
另外,我知道gets不推荐,fgets类似吗?或者它更好用scanf吗?
#include <stdio.h>
#include <ctype.h>
void shift (char *my_string); // Function declaration
int main()
{
char inputstring[50];
printf("Enter a string\n");
char *my_string = inputstring;
shift(my_string); // Function
}
void shift (char *my_string) // Function definition
{
int i =0;
char ch;
for(i=0; i<50; i++)
fgets(my_string, 50, stdin);
while(my_string[i])
{
if(ch>='A' && ch<= 'Z') // When first char is uppercase
{
putchar (toupper(my_string[i]));
i++; …Run Code Online (Sandbox Code Playgroud)