栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C和指针 第9章 字符串、字符和字节

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C和指针 第9章 字符串、字符和字节

    字符串、字符和字节
    字符串是一种重要的数据类型,但是C语言并没有显式的字符串数据类型,因为字符串以字符串常量的形式出现或存储于字符数组中。字符串常量很适用于那些程序不会对它们进行修改的字符串。所有其他字符串都必须存储于字符数组或动态分配的内存中。本章描述处理字符串和字符的库函数,以及一组既可以处理字符串也可以处理非字符串数据的相关函数。
    9.1 字符串基础
    字符串就是一串零个或多个字符,并且以一个位模式为全0的NUL字节结尾。因此,字符串所包含的字符内部不能出现NUL字节。这个限制很少引起问题,因为NUL字节并不存在与它相关联的可打印字符,这也是选它为终止符的原因。NUL字节是字符串的终止符,但它本身并不是字符串的一部分,所以字符串的长度并不包括NUL字节。
    头文件string.h包含了使用字符串函数所需的原型和声明。尽管并非必需,但在程序中包含这个头文件确实是个好主意,因为有了它所包含的原型,编译器可以更好地为程序执行错误检查。
    老的C程序常常不包含这个文件,因此没有函数原型,只有每个函数的返回类型才能被声明,而且这些函数中的绝大多数都会忽略返回值。


#include
#include
#include

int main( void ){
    
    const char *cp = "hello, world!"; 
    printf( "cp = %p, "hello, world" = %p,n"
    "sizeof(cp) = %zd, sizeof("hello, world!") = %zd,n"
    "cp = %s, "hello, world!" = %s,n"
    "*cp = *c, *"hello, world!" = %cn",
    cp, "hello, world", sizeof(cp), sizeof("hello, world!"), cp, "hello, world", *cp, *"hello, world!" );
    
    
    char str[] = "hello, world!";
    
    char *dp;
    int  str_len;
    str_len = strlen( "hello, world!" );
    
    dp = (char *)malloc( str_len + 1 );
    strcpy( dp, "hello, world!" );
    printf( "str = %s, dp = %s, cp = %sn", str, dp, cp );
    
    printf( "strlen("hello, world!") = %d, sizeof("hello, world!") = %zdn", str_len, sizeof("hello, world!") );
    
    free( dp );
    printf( "NUL = %d, NUL = %cn", '', '' ); 

    return EXIT_SUCCESS;
}
 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/982835.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号