字符串相关

有如下程序段:
char a[] = "xyz", b[] = {'x', 'y', 'z'};
if (strlen(a) > strlen(b))
    printf("a > b\n");
else
    printf("a <= b\n");


则程序输出:

a<=b
char a[] = "xyz", b[] = {'x''y''z'};
a容易理解,strlen(a)=3;
b是数组,元素在内存中是连续存储的,而strlen函数求字符串长度是要以'\0'结尾,但是b没有'\0',
strlen的内部函数指针会一直向后搜索,直至找到'\0',内存中的其他区域也是有数据的,只是没有意义,
所以,strlen的指针最后指到哪里无法确定,但是结果肯定大于等于3.

在C语言中,字符串本质上是字符数组,以空字符`'\0'`结尾,以下是一些与字符串相关的常见语句和操作: ### 字符串声明与初始化 ```c #include <stdio.h> int main() { // 方式一:使用字符数组初始化 char str1[10] = "hello"; // 方式二:使用字符指针初始化 char* str2 = "world"; printf("%s\n", str1); printf("%s\n", str2); return 0; } ``` 上述代码展示了两种初始化字符串的方式,一种是使用字符数组,另一种是使用字符指针[^1]。 ### 字符串输入输出 ```c #include <stdio.h> int main() { char str[100]; // 从标准输入读取字符串 scanf("%s", str); // 输出字符串到标准输出 printf("你输入的字符串是: %s\n", str); return 0; } ``` 此代码通过`scanf`函数从标准输入读取字符串,使用`printf`函数将字符串输出到标准输出。 ### 字符串处理函数 C语言提供了许多用于处理字符串的库函数,包含在`<string.h>`头文件中。 #### `strlen`函数:计算字符串长度 ```c #include <stdio.h> #include <string.h> int main() { char str[] = "hello"; size_t length = strlen(str); printf("字符串的长度是: %zu\n", length); return 0; } ``` 该代码使用`strlen`函数计算字符串的长度。 #### `strcpy`函数:复制字符串 ```c #include <stdio.h> #include <string.h> int main() { char source[] = "hello"; char destination[10]; strcpy(destination, source); printf("复制后的字符串是: %s\n", destination); return 0; } ``` 此代码使用`strcpy`函数将一个字符串复制到另一个字符数组中。 #### `strcmp`函数:比较字符串 ```c #include <stdio.h> #include <string.h> int main() { char str1[] = "hello"; char str2[] = "hello"; int result = strcmp(str1, str2); if (result == 0) { printf("两个字符串相等\n"); } else { printf("两个字符串不相等\n"); } return 0; } ``` 该代码使用`strcmp`函数比较两个字符串是否相等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值