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;
}