用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; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |