c++ - 大写替代字母
问题描述
由于下面的代码应将给定的字符串转换为可选的大写或小写。字符串 S(仅字母)作为输入传递。打印输出应包含每个单词中奇数位置的大写字母和偶数位置的小写字母。
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{
char str[100];
int i;
scanf("%s",str);
for(i=0;str[i]!='\0';i++){
if((i%2)==1)
str[i]=tolower(str[i]);
else
str[i]=toupper(str[i]);
}
printf("%s",str);
return 0;
}
输入将是tREE GiVES us fruiTS
并且预期的输出应该是TrEe GiVeS Us FrUiTs
但我得到的只是第一个字符串TrEe我应该怎么做才能获得完整的字符串
解决方案
scanf("%s, str)
读入一个字符串,直到第一个空白字符。因此,当您键入“树给我们水果”时,它会读入“树”,然后看到空格并停止。
尝试fgets(str, 100, stdin)
改用
推荐阅读
- sql - 无法运行spring boot程序
- android - 无法使用 MockServerResponse 读取 Json 文件
- java - 如何验证文件的内容是否与其扩展名匹配
- javascript - 如何在 React 中获取 JSON 输入并将其转换为 const 数组?
- swift - 如何在 Swift 中将 API 调用中的数据添加到 tableviewcell
- python - Python class not able to handle exception
- javascript - Does not use passive listeners to improve scrolling performance from materialize-1.0.0.min.js
- sql - How long can we keep IMPALA JDBC connection open?
- reactjs - 如何将从 Firestore 获取的数据作为道具传递给组件
- javascript - I want to hide the parent div if child div is empty as Filter results empty