1、隐式字符串文字连接
C 语言中,当将两个字符串字面量(string literals)放在一起时,编译器会自动将它们连接。这是最简单和最常见的连接字符串文字的方法。
#include <stdio.h> int main() { printf("Hello, " "World!" "\n"); return 0; }
2、使用 strcat() 进行显式连接
如果需要在运行时连接字符串(即,不只是字面量字符串),可以使用 strcat()
函数,它声明在 库中。此函数会将一个字符串附加到另一个字符串后面。
#include <stdio.h> #include <string.h> int main() { char str1[50] = "Hello, "; char str2[] = "World!"; strcat(str1, str2); // 将 str2 连接到 str1 后面 printf("%s\n", str1); // 输出: Hello, World! return 0; }
3、使用 sprintf() 进行连接
也可以使用 sprintf()
函数来连接字符串。它声明在 库中,将格式化输出写入到字符串中。
#include <stdio.h> int main() { char result[50]; sprintf(result, "%s%s", "Hello, ", "World!"); // 使用 sprintf 连接字符串 printf("%s\n", result); // 输出: Hello, World! return 0; }
4、使用指针运算进行手动连接
还可以通过使用指针运算来手动连接字符串。这种方法更底层,给你更多的内存控制,但通常不如前述方法常见。
#include <stdio.h> int main() { char str1[50] = "Hello, "; char str2[] = "World!"; char *p = str1 + strlen(str1); // 指向 str1 的末尾 while (*str2) { *p++ = *str2++; // 将 str2 中的每个字符复制到 str1 中 } *p = '\0'; // 给结果添加终止符 printf("%s\n", str1); // 输出: Hello, World! return 0; }
5、日志信息构建
在调试和日志记录时,可能需要将多个信息拼接在一起,以便输出完整的日志消息。常量字符串的连接在这种场景中非常常见。
#include <stdio.h> void log_message(const char* level, const char* message) { printf("[%s] %s\n", level, message); } int main() { log_message("INFO", "Application started."); log_message("ERROR", "Failed to load configuration."); return 0; }
6、构建 SQL 查询语句
当需要构建动态的 SQL 查询时,字符串连接是非常有用的。你可以将查询条件、字段名称、表名等字符串拼接在一起。
#include <stdio.h> #include <string.h> int main() { char query[200] = "SELECT * FROM users WHERE "; strcat(query, "age > 30 AND "); strcat(query, "name = 'John';"); printf("SQL Query: %s\n", query); return 0; }