相关疑难解决方法(0)

如何使用printf打印非空终止字符串?

如何使用printf打印一个非空终止的字符串,假设我在运行时知道字符串的长度?

c string printf

60
推荐指数
2
解决办法
2万
查看次数

在C语言中,为什么%s没有给出值就可以工作?

根据我的知识和类似这样的线程,如果要在C中打印字符串,则必须执行以下操作:

printf("%s some text", value);
Run Code Online (Sandbox Code Playgroud)

并且将显示值而不是%s

我写了这段代码:

char password[] = "default";
printf("Enter name: \n");
scanf("%s", password);
printf("%s is your password", password); // All good - the print is as expected
Run Code Online (Sandbox Code Playgroud)

但是我注意到,没有价值部分,我可以做完全相同的事情,它仍然可以工作:

printf("%s is your password");
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,为什么%s占位符在没有我给它的情况下就获得了价值,它又如何知道赋予它的价值?

c

3
推荐指数
1
解决办法
185
查看次数

如果我在代码的printf部分中使用%s代替%c,则代码背后的解释

因此,我对以下解释感到好奇,如果我在printf部分使用%s,为什么我的代码会得到不同的结果。我知道工作的人应该使用%s代替%c。

#include <stdio.h>

int main() {
    int i;
    char str1[12] = "Hello world!";
    printf("str1==%c\n", str1); 
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我尝试多次编译它,并且在两次之间得到一些不同的结果:str1 == ?、 str1 ==,str1 ==(此空白实际上是该站点无法显示的某些图标)

c c++ printf

2
推荐指数
2
解决办法
133
查看次数

标签 统计

c ×3

printf ×2

c++ ×1

string ×1