当前位置: 首页 > wzjs >正文

建设网站成都成都做整站优化

建设网站成都,成都做整站优化,新闻网站建设方案书怎么写,新闻网站开发背景与意义模板在 C 语言中,字符(Character) 和 字符串(String) 是两个不同但相关的概念。下面详细介绍它们的定义、存储方式和使用方法: 一、字符(Character) 1. 定义与存储 基本类型&#xff…

在 C 语言中,字符(Character) 和 字符串(String) 是两个不同但相关的概念。下面详细介绍它们的定义、存储方式和使用方法:

一、字符(Character)

1. 定义与存储
  • 基本类型char(1 字节,范围 - 128~127 或 0~255,取决于编译器)
  • 存储形式:单个字符用单引号 ' ' 包裹,实际存储为对应的 ASCII 码值
2. 示例代码
#include <stdio.h>int main() {// 直接赋值(字符常量)char c1 = 'A';         // 存储ASCII码值65char c2 = 66;          // 等价于 char c2 = 'B';char newline = '\n';   // 转义字符:换行符// 输出字符和对应的ASCII值printf("c1: %c (ASCII %d)\n", c1, c1);  // 输出: A (ASCII 65)printf("c2: %c (ASCII %d)\n", c2, c2);  // 输出: B (ASCII 66)// 特殊字符(转义序列)char tab = '\t';       // 制表符char quote = '\"';     // 双引号字符return 0;
}
3. 关键注意点
  • 转义字符:使用反斜杠 \ 表示特殊字符,例如:
    '\n'  // 换行符
    '\t'  // 制表符
    '\0'  // 空字符(ASCII 0,字符串终止符)
    '\\'  // 反斜杠本身
    '\''  // 单引号
    '\"'  // 双引号
    
  • 字符与整数的关系char 本质是小整数,可参与算术运算:
    char c = 'A';
    printf("%d\n", c + 1);  // 输出66('A'的ASCII码是65)
    

二、字符串(String)

1. 定义与存储
  • 本质:由多个字符组成的数组,以空字符 '\0' 结尾
  • 两种定义方式
    • 字符数组char str[] = "Hello";
    • 字符指针char *str = "Hello";
2. 字符数组 vs 字符指针
字符数组字符指针
char str[] = "Hello";char *str = "Hello";
数据存储在栈内存数据存储在只读内存区
可修改内容(如 str[0]='J';不可修改内容(修改会导致运行时错误)
数组大小自动计算(含 '\0'指针指向常量字符串的首地址
3. 示例代码
#include <stdio.h>
#include <string.h>  // 字符串处理函数库int main() {// 1. 字符数组方式(可修改)char str1[] = "Hello";  // 等价于 char str1[6] = {'H', 'e', 'l', 'l', 'o', '\0'};printf("str1长度: %zu\n", strlen(str1));  // 输出5(不包含'\0')printf("str1大小: %zu\n", sizeof(str1));  // 输出6(包含'\0')// 修改字符数组内容str1[0] = 'J';printf("修改后: %s\n", str1);  // 输出 "Jello"// 2. 字符指针方式(指向常量字符串,不可修改)char *str2 = "World";// str2[0] = 'X';  // 错误!修改常量字符串会导致运行时错误// 3. 动态输入字符串(需确保缓冲区足够大)char input[100];printf("请输入字符串: ");scanf("%s", input);  // 注意:scanf遇到空格会截断printf("你输入的是: %s\n", input);// 4. 字符串处理函数示例char src[] = "Copy this";char dest[20];strcpy(dest, src);  // 复制字符串printf("复制结果: %s\n", dest);return 0;
}
误区 1:“指针指向的字符串不能修改,所以指针本身不能修改”
  • 错误:指针变量本身的值(即所指向的地址)可以修改,例如:
    char *str = "Hello";
    str = "World";  // 合法!指针重新指向另一个常量字符串
    

    但 不能通过指针修改其所指向的内存内容
误区 2:“用 char * 定义的字符串都不能修改”
  • 错误:如果 char* 指向的是 可写内存(如动态分配的内存或字符数组),则可以修改。例如:
    char arr[10] = "abc";
    char *ptr = arr;  // ptr指向栈上的数组(可写)
    ptr[0] = 'x';     // 合法,修改数组内容为 "xbc"
4. 字符串处理函数

常用的字符串操作函数(需包含 <string.h>):

函数名功能描述示例
strlen(s)返回字符串长度(不含 '\0'strlen("Hello") → 5
strcpy(dst, src)复制字符串 src 到 dststrcpy(dest, "Hi");
strcat(dst, src)将 src 追加到 dst 末尾strcat(dest, " World");
strcmp(s1, s2)比较 s1 和 s2(按字典序)strcmp("A", "B") → 负数
strchr(s, c)在 s 中查找字符 c 第一次出现的位置strchr("test", 'e') → 指向 e 的指针

三、字符与字符串的区别

特性字符 (char)字符串 (char[] 或 char*)
定义符号单引号 'A'双引号 "Hello"
存储内容单个字符的 ASCII 码值多个字符 + 终止符 '\0'
占用空间1 字节字符串长度 + 1 字节
示例char c = 'A';char s[] = "ABC"; 或 char *s = "ABC";

四、常见错误与注意事项

  1. 未初始化字符串

    未初始化指针直接使用

    char *ptr;
    strcpy(ptr, "test"); // 错误!ptr未指向有效内存
    // 修正:ptr = (char*)malloc(5); strcpy(ptr, "test");
  2. 字符串越界

    char str[3];
    strcpy(str, "ABCD");  // 错误!超出数组大小,导致缓冲区溢出
    
  3. 忘记字符串终止符

    char str[3] = {'A', 'B', 'C'};  // 错误!缺少'\0',不是有效字符串
    printf("%s", str);  // 可能输出乱码,直到遇到内存中的某个'\0'
    
  4. 混淆字符和字符串

    char c = "A";  // 错误!"A"是字符串(含'A'和'\0'),无法赋值给char
    char c = 'A';  // 正确
    

    补充:预分配内存的常用方法

    方法适用场景函数 / 语法示例
    栈内存数组长度固定、编译时已知char arr[size];char name[20];
    堆内存动态分配长度动态变化、运行时确定malloc()/calloc()int *ptr = (int*)malloc(n*sizeof(int));
    常量字符串只读场景,无需修改"Hello"char *str = "World";
    柔性数组结构体末尾的动态数组struct { int len; char data[]; }// C99特性,需动态分配结构体+数组

总结

  • 字符:单个字符用 char 类型表示,存储为 ASCII 码值,用单引号包裹。
  • 字符串:由字符数组组成,以 '\0' 结尾,用双引号定义。
  • 操作字符串:使用标准库函数(如 strlenstrcpy)处理字符串,避免手动操作终止符。
  • 安全性:确保缓冲区足够大,避免越界和未初始化内存的问题。
http://www.dtcms.com/wzjs/239388.html

相关文章:

  • 医院网站建设运营方案大连中小企业网络营销
  • 佛山外贸网站个人网页制作成品
  • 香港的网站不需要备案吗百度竞价查询
  • 设计接单兼职网站抖音广告推广
  • 杨凌做网站网址谷歌浏览器官网下载安装
  • 台湾外贸网站平台培训机构招生7个方法
  • 做外贸最好的网站有哪些有效果的网站排名
  • 建设一个境外网站网站建设维护
  • 我的电脑做网站服务器吗卡点视频免费制作软件
  • 青岛百度网站排名优化网络销售管理条例
  • 用vs做网站表格向上居中武汉网站seo公司
  • 电子商务网站建设 实验分析查询网站服务器
  • 网站制作 代码编辑百度号码认证平台官网首页
  • 网站建设的背景音乐网店代运营靠谱吗
  • 中国建设委员会网站网络广告策划的内容
  • cs如何做全屏网站廊坊今日头条新闻
  • 外文网站设计矿产网站建设价格
  • wordpress网站建设公司网站建设需要注意什么
  • 简述政府网站建设的重要性百度风云榜
  • 做响应式网站的百度商城官网
  • 网站的404如何做新闻源发稿平台
  • 不需要网站备案的广告联盟足球世界排名国家最新
  • 杭州品牌网站制作谷歌推广哪家公司好
  • 网站建设平台排行榜公司企业网站模板
  • 医疗营销的网站怎么做看b站视频软件下载安装手机
  • 信访举报网站建设建议如何推广网站
  • 合肥网站建设推广seo快速排名软件
  • 百度网站怎样做山东百度推广总代理
  • 合肥建设局网站首页怎样推广app
  • 如何删除在凡科上做的网站安卓系统最好优化软件