首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C-在sprintf和打印字符串方面有问题

C-在sprintf和打印字符串方面有问题
EN

Stack Overflow用户
提问于 2015-04-04 10:26:55
回答 2查看 258关注 0票数 1
代码语言:javascript
复制
#include <stdio.h>
#include <string.h>
int main() {
    char buf[100];

char *word1 = 'Holy';

char *word2 = 'Moly';
sprintf(buf,"%s %s", word1, word2);
printf("%s\n", buf);

}

你好,我正在尝试使用sprintf,但是我似乎不能让这个程序工作,我做错了什么吗?它可以编译,但当我运行它时,它会给我分段错误(核心转储)或崩溃。

EN

回答 2

Stack Overflow用户

发布于 2015-04-04 10:33:38

您缺少char*的双引号

代码语言:javascript
复制
#include <stdio.h>
#include <string.h>

int main() {
    char buf[100];
    char *word1 = "Holy";
    char *word2 = "Moly";
    sprintf(buf,"%s %s", word1, word2);
    printf("%s",buf);
}

编辑:别忘了使用gcc -Wall来显示所有的警告,以便更容易地发现这些错误!

票数 2
EN

Stack Overflow用户

发布于 2015-04-04 10:36:01

尝试修复这些行:

代码语言:javascript
复制
char *word1 = 'Holy'; 
char *word2 = 'Moly';

至:

代码语言:javascript
复制
char *word1 = "Holy";
char *word2 = "Moly";

这是因为单引号仅用于单个字符,而不是字符串值。始终注意编译器警告,特别是在处理指针时。如果没有启用编译器警告,请尝试按照Darwin57721解释的那样启用它们。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29442068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档