c - 当存在目标变量时,在 strcat、strcopy 等(等)中返回 char* 的目的是什么?

标签 c string

只是一个愚蠢但快速的问题:为什么一些使用 c 风格字符串的函数,例如:fgets、strcpy、strcat 等,当参数列表中有一个变量存储输出?即,为什么会这样:

char *strcat ( char *dest, const char *src );

不是

void strcat ( char *dest, const char *src );

甚至只是返回结果

char *strcat (const char *src );

我的意思是,如果您嵌套调用这些函数(这很危险),我可以看出这会有什么用,但我不明白为什么您需要同时拥有目标变量和返回结果...

我正在复习一些 C 编程的东西,不敢相信我忘记了多少!

最佳答案

为了方便使用,让这些函数可以在更大的表达式中使用或者可以嵌套。

类似于:

strcat(path, strcpy(file, "foo.txt")); 

printf("[%s]\n", strcat(string1, string2));

不用说,这些用法可以而且应该避免。

关于c - 当存在目标变量时,在 strcat、strcopy 等(等)中返回 char* 的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10476501/

相关文章:

java - 将字符串转换为 <Integer>ArrayList

android - 将来自服务器的数据放入字符串数组

c++ - 从类方法返回 "const char*"作为 std::string&

javascript - 如何使用javascript从字符串末尾删除多个逗号?

java - 在java中将json数组值分配给字符串数组

c - OpenGL 中的洛伦兹吸引子

c - 字符串数据存储在哪里?

c - 使用 AVR Controller 的 LED 矩阵

c - 如何使用带有 CTest 的检查库在 C 中进行单元测试

c++ - 隐藏复合数据类型的某些字段以防止写入(或读回)hdf5 文件