- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我是编程新手(大学第一学期),跟不上我的讲师。目前我坚持这个练习(比我愿意承认的时间要长得多)。我试图在 Internet 上(在本网站和其他网站上)寻求帮助,但我不能,因为我们的讲师让我们使用一种非常简单的 c 形式。我不一定要完整的答案。我真的很感激一些关于我在哪里出错的提示。我知道这对某些人来说可能真的很简单,这个问题可能看起来无知或愚蠢,我为没有弄清楚问题而感到难过,但我需要尝试去理解。
所以,我想做的是使用 scanf 和一个 do while 循环,这样用户就可以在数组中输入字符。但我不明白为什么当用户按下 ENTER 时循环不会停止。代码还有更多内容,但我正在尝试一步一步慢慢来。 (我不允许使用指针和 getchar 等)。
#include <stdio.h>
main()
{
char a[50];
int i;
printf("Give max 50 characters\n");
i=0;
do
{
scanf("%c", &a[i]);
i=i+1;
}
while((i<=50) && (a[i-1]!='\0'));
for(i=0; i<50; i++)
printf("%c", a[i]);
}
最佳答案
这里没有任何以 nul 结尾的字符串,只有字符串数组。
因此,当按下回车键时,a[i-1]
是\n
不是\0
( scanf
和 %c
作为参数不会以 nul 终止字符串,并且 ENTER 只是一个代码为 10 又名 \n
的非 nul 字符)
然后不要打印字符串的其余部分,因为你会得到垃圾,只需重复使用 i
打印回字符串时:
#include <stdio.h>
main()
{
char a[50];
int i;
printf("Give max 50 characters\n");
i=0;
do
{
scanf("%c", &a[i]);
i=i+1;
}
while((i<sizeof(a)) && (a[i-1]!='\n')); // \n not \0
int j;
for(j=0; j<i; j++) // stop at i
printf("%c", a[j]); // output is flushed when \n is printed
}
同时使用 i<50
进行测试不是i<=50
因为a[50]
在数组边界之外(我已经概括为 sizeof(a)
)
关于c - 使用 scanf 进行字符输入,但 do-while 循环不会在空字符处停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48096299/
我正在尝试用 Java 构建一个字符串,该字符串的长度最多为 3,最少为 1。 我正在根据整数数组的内容构建字符串,如果数组的内容为 -1,我想在字符串中输出一个空字符。否则字符串将包含整数的字符版本
我有一个类,其中有一个方法可以在字符串中包含 NUL 字符的情况下终止程序。具体表达是这样的: stringVar.indexOf('\u0000') < 0 这个字符串是通过 Scanner 从用户
我有一个 wchar_t 数组。我需要在数组中的特定位置添加一个 unicode 空字符。 wchar_t var1[100]; var1[79] = '\u0000'; 我尝试了上面的方法,但出现以
好吧,这听起来可能是重复的,但我已经尝试了所有可能性,例如 str.strip()、str.rstrip()、str.splitline (),还 if-else 检查像: if str is not
System.out.println("-----------------------------------------------------------"); System.out.pr
我有一个奇怪的问题。我从公司内部的许多不同应用程序接收数据,并将这些数据显示在网站上。根据发送数据的系统,数据本身可能在字符串中包含一些奇怪的字符。我的问题是我有一个用户可以搜索以允许其中包含此数据的
我遇到了 aSSL ,这似乎有几年历史了,想知道是否有人有其他“安全”AJAX 连接代码示例?显然,这不如使用 SSL 证书安全,但使用 null character SSL在那里进行攻击(最近针对
我有一个类似于以下内容的 pyspark 数据框: df = sql_context.createDataFrame([ Row(a=3, b=[4,5,6],c=[10,11,12], d='b
我有以下要执行的查询: MyModel.objects.annotate(current_name=Coalesce('nickname', 'name')).order_by('current_na
每当 rails 变量等于 nil(或者实际上每当我使用 rails 代码(参见第 3 个代码示例))时,我的 html 中就会得到一串空字符。 new.html.haml %h1.editable.
我是一名优秀的程序员,十分优秀!