用strcpy连接字符串
发布时间:2020-12-16 10:30:37 所属栏目:百科 来源:网络整理
导读:这是我的代码 #include stdio.h#include string.h#include stdlib.hint main() { char f[] = "First"; char s[] = "Second"; char *tmp = malloc(strlen(f) + strlen(s) + 2); strcpy(tmp,f); strcpy(tmp,s); printf("%s",tmp); free(tmp); return 0;} 我正
|
这是我的代码
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() {
char f[] = "First";
char s[] = "Second";
char *tmp = malloc(strlen(f) + strlen(s) + 2);
strcpy(tmp,f);
strcpy(tmp,s);
printf("%s",tmp);
free(tmp);
return 0;
}
我正在尝试连接f和s.问题是tmp只包含“Second”作为数组. 解决方法
如果你坚持使用strcpy,你的代码应该稍加修改:
int main() {
const char *f = "First";
const char *s = "Second";
char *tmp = malloc(strlen(f) + strlen(s) + 1);
strcpy(tmp,f);
strcpy(tmp+strlen(f),s);
printf("%s",tmp);
free(tmp);
return 0;
}
出于安全原因,您应该考虑使用strncpy而不是strcpy.此外,strcat是用于连接C字符串的更常规功能. 编辑以下是使用strncpy而不是strcpy的示例 #define MAX 1024
int main() {
const char *f = "First";
const char *s = "Second";
size_t len_f = min(strlen(f),MAX);
size_t len_s = min(strlen(s),MAX);
size_t len_total = len_f + len_s;
char *tmp = malloc(len_total + 1);
strncpy(tmp,f,len_f);
strncpy(tmp+len_f,s,len_s);
tmp[len_total] = ' ';
printf("%s",tmp);
free(tmp);
return 0;
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
