我想添加“/。”到文件名,例如,
我有文件名“abc”,我想得到一个名字“abc / .abc”,
怎么用C做?
strcpy(“/。”,name)和strcat(“/。”,name)返回分段错误。
由于
答案 0 :(得分:2)
strcat
的第一个参数必须是可修改的字符串,并且分配了足够的空间来保存结果字符串和终止零字节。 strcpy
的第一个参数必须指向已分配的可修改的内存,并且有足够的空间来保存字符串的结果副本和终止的零字节。在两个示例中,您都传递了一个常量作为第一个参数。
以下是一些示例代码,可以执行您想要的操作:
char* SlashDotter(const char* in)
{ // turn <string> into <string>/.<string> -- caller must free returned string
char *out = malloc(strlen(in)*2 + 3); // two copies of input, /, ., and nul
strcpy(out, in);
strcat(out, "/.");
strcat(out, in);
return out;
}
答案 1 :(得分:1)
asprintf()可用于分配字符串并填充其内容。
在Linux系统上“man asprintf”将为您提供该功能如何工作的说明,否则使用谷歌从其他地方获取帮助。