- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这是我的目标:
输入:包含混合 ASCII 字符(大写、小写、数字、空格)的字符串
输出:只有大写字符的字符串
我有这个:
#include <stdio.h>
void csere(char s[]){
int i;
for(i=0; s[i]!='\0'; i++){
if('a'<=s[i] && s[i]<='z'){
s[i]-=32;
}
printf("%c", s[i]);
}
}
void main(){
char s[1];
scanf("%s", &s);
csere(s);
}
我的问题是:
该函数在字符串中的第一个“空格”字符处停止。我试图改变 s[i] != '\0' 在 'for' 部分 for i
示例:qwerty --> QWERTY,但是 qwe rty --> QWE
(较小的问题:如果我在 main 函数中将 1 更改为 0,则程序只接受长度小于 12 的字符串。)
感谢您的帮助。抱歉英语不好。
最佳答案
scanf
仅使用 %s
修饰符扫描非空白字符。如果你想读取字符串中的所有内容,你应该使用 fgets
和 stdin
作为第三个参数:
fgets(s, sizeof s, stdin);
如果你真的需要使用 scanf
做作业或其他事情,你应该使用类似的东西:
scanf("%128[^\n]", s);
此外,请注意您没有为字符串分配足够的空间,它没有崩溃的事实纯属巧合......您应该在数组上分配空间:
char s[128]; // change 128 for max string size
实际上,我之前写的 fgets()
用法只会读取 1 个字符(包括终止符字符串),因为您只将 1 个字符放在数组上...更改数组大小,它应该工作。
您也可以只在 ctype.h
上使用 toupper()
,但我想这是某种家庭作业或练习。
此外,如果您被允许使用指针,这将是一种更短的方式(并且可能性能更高,尽管必须进行测试......这些天编译器很好 :-) )转换为大写的方式(注意虽然它改变了你原来的字符数组,并且不打印它,虽然这很容易修改/添加,但我会把它留给你):
void strupper(char *sptr) {
while (*sptr) {
if ((*sptr >= 'a' ) && (*sptr <= 'z')) *sptr -= 32;
sptr++;
}
}
关于c函数,表示 "uppercasing"一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23713874/
我遇到的问题与 text-transform: uppercase 属性的希腊字符大写有关。 在希腊语中,元音可以有尖音符,包括小写和大写,例如 one 在希腊语中是 ένα。在句子的开头是Ένα。但
Text transform 属性不用于复制为大写,但是,我注意到在 Mac 上的 Chrome 版本 78.0.3904.108(官方构建)(64 位)中,文本现在复制为大写。 转换后的文本: .l
我正在开发一个抛硬币程序,希望允许用户使用 toUpperCase() 输入小写或大写的正面/反面。但由于某种原因,在我输入任一方向的头或尾后,它会跳过循环的整个过程并打印最后一条语句。我不知道为什么
我编写了一个 Web 应用程序,其中包含多种语言的翻译(其中一种是希腊语。) 当在标题上显示某个翻译时,设计规则是文本应该是大写的,这在世界上任何其他语言中都可以,但是当涉及到希腊语时,浏览器不知道该
定义宏时(例如 #define BALL)。为什么人们使用大写字母?我可以写类似 #define ball 的东西。它不是大写的,但它有效。 最佳答案 这是惯例。它使阅读和理解代码变得更加容易。这不是
我有一个任务,描述如下: - Reads printable characters (20h-7Fh) from the keyboard without echoing - Uppercase le
在我的spring boot应用程序下,我有这个restfull服务方法: @RequestMapping(value = "objects/{objectId}", method = Request
我想知道是否有一种方法可以定位所有具有以下内容的文本: text-transform: uppercase; 这里的想法是,在排版方面,如果你使用所有大写字母,你应该增加字母间距以提高易读性,并且只针
我正在尝试在 Mysql 中执行我的应用程序 SpringBoot,AWS -> Aurora -> Mysql, 当我执行时,我收到错误 -> 我可以上传所有完整的跟踪。 你可以看到表“USUARI
这是我的目标: 输入:包含混合 ASCII 字符(大写、小写、数字、空格)的字符串 输出:只有大写字符的字符串 我有这个: #include void csere(char s[]){ in
这个问题在这里已经有了答案: Displaying Arabic characters in C# console application (3 个答案) 关闭 6 年前。 我如何检测到此字符串可以
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 8 年前。 Improve
这个问题已经有答案了: How do I compare strings in Java? (23 个回答) 已关闭 6 年前。 我找不到问题所在。我正在编写一个国际象棋游戏,我想显示玩家的棋步。例如
我想知道如何将特定索引打印为大写和小写? 我不知道特定索引会发生变化吗? 对于单个索引,这是代码... public class UpperAndLowerCase { public stat
我正在尝试将目录中的所有文件名更改为不同大小写组合的大小写示例:TextFile == tExTfIlE,在更改名称后,我想打开文件并使其中的所有文本与上面所示的相同但我不知道如何。我有将大小写更改为
我使用操纵器已有一段时间了,但并未完全理解它们的工作原理。 这段代码: std::cout int main() { std::cout #include int main() {
这存在吗?我需要制作一个始终为大写的 TextView。 最佳答案 试试这个: 关于android - 文本转换 :uppercase equivalent in Android?,我们在St
我正在为 SVN 使用 Eclipse 和插件 Subeclipse。 我只想将文件重命名为大写。 示例:“file_a.txt”到“FILE_A.TXT” 我的最佳实践应该是什么? 我尝试右键单击该
我正在尝试使用一些操作字符串的函数在 Lua 中创建一个库。 我想做一个函数,仅在单词的奇数字符上将字母大小写更改为大写。 这是一个例子: Input: This LIBRARY should wor
要使用 QSpinBox 输入和显示十六进制数,只需将 displayIntegerBase 设置为 16。但是,我找不到将显示设置为的属性或方法大写(例如 1A 而不是 1a)。 我知道我可以重写
我是一名优秀的程序员,十分优秀!