亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

C 语言字符串完全指南:声明、输入输出与库函数详解

什么是 C 语言字符串?

C 语言中 字符串 是以空字符(\0)结尾的字符连续序列。虽然语言无专门字符串类型,但通常用 char 数组表示。用字符串字面量初始化时,编译器自动追加空终止符。

"Welcome to the world of programming!"

标准库头文件 <string.h> 提供丰富的字符串操作函数。

声明与初始化字符串

因字符串本质是字符数组,声明时须指定数组大小。大小定义可存储的最大字符数(不含空终止符)。

char string_variable_name[array_size];

典型声明:

char first_name[15]; /* 最多 14 字符 + \0 */
char last_name[15];

提供初始化值时,编译器自动计算长度并添加空终止符,数组大小可省略。

char first_name[15] = "ANTHONY";
char first_name[] = "NATHAN"; /* 自动推断大小 */
char string3[6] = {'h','e','l','l','o','\0'}; /* 显式终止符 */

从用户读取字符串

输入函数在安全性与行为上有差异:

使用 fgets 示例:

#include <stdio.h>
int main() {
    char name[50];
    printf("Enter your full name: ");
    fgets(name, sizeof(name), stdin);
    printf("Your name is %s", name);
    return 0;
}

打印字符串

经典方式 printf("%s", name);。两个便捷替代方案:

puts 示例:

#include <stdio.h>
int main() {
    char greeting[] = "Hello, world!";
    puts(greeting);
    return 0;
}

字符串库(<string.h>)

常用函数:

函数说明
strlen返回字符串长度(不含空终止符)
strcat追加字符串到另一字符串末尾
strcmp按字典序比较两字符串
strcpy复制字符串
strncmp比较前 n 字符
strncpy复制前 n 字符
strchr查找字符首次出现位置
strrchr查找字符最后出现位置
strstr查找子串
strncat追加前 n 字符
strlwr转小写(非标准)
strupr转大写(非标准)
strrev反转字符串(非标准)

演示程序:

#include <stdio.h>
#include <string.h>
int main() {
    char str1[20] = "Hello";
    char str2[20] = " World!";
    char result[40];
    /* 比较 */
    if (strcmp(str1, str2) == 0) puts("Strings are equal");
    else puts("Strings are not equal");
    /* 拼接 */
    strcat(str1, str2); // str1 变为 "Hello World!"
    printf("Concatenated: %s\n", str1);
    /* 长度 */
    printf("Length of str1: %zu\n", strlen(str1));
    /* 复制 */
    strcpy(result, str1);
    printf("Copied string: %s\n", result);
    return 0;
}

字符串转数字

标准转换函数:

atoi 示例:

#include <stdio.h>
#include <stdlib.h>
int main() {
    char number_str[20];
    printf("Enter a number: ");
    fgets(number_str, sizeof(number_str), stdin);
    int num = atoi(number_str);
    printf("You entered %d\n", num);
    return 0;
}

核心要点

C语言

  1. C++ 数组完全指南:声明、初始化、多维数组与指针技巧
  2. C++ 字符串函数实战:strcpy、strcat、strlen、strcmp 详解与示例
  3. C 语言 realloc() 完全指南:语法、最佳实践与实战案例
  4. C 语言 free() 函数实战指南:正确释放动态内存、防泄漏与避坑全解析
  5. C# 字符串完全指南:创建、属性、常用方法与实战技巧
  6. VHDL 字符串列表创建:最佳实践与示例
  7. Python 字符串操作完全指南:替换、连接、分割、反转、大小写转换
  8. Python 字符串完全指南:创建、访问、格式化与内置方法大全
  9. 精通 Java 字符串:创建、方法与最佳实践
  10. 精通 Java 枚举字符串表示:默认行为、toString 重写与进阶模式
  11. Java String length() 方法:获取字符串长度(示例)
  12. Java Strings 类:掌握字符串创建与操作