创建方式
初始化
- 字符数组:
- 创建与赋值必须在同一行
- 指定大小:未填满部分用'\0'填充
- 用字符串初始化:末尾自动添加'\0'
- 不初始化赋值则乱值
- 字符指针:
- 创建与赋值可以不在同一行
- 未分配空间,故不可直接gets(str)
相关函数
- strlen():字符串大小
- strlen(charArray):忽略字符数组中的'\0'
- sizeof():类型大小
- sizeof(charArray):数组元素个数,'\0'也算
- sizeof(charPointer):指针字节数 == 8
- strcmp():字符串比较
- strlen(charArray, ...):只比较内容,字符数组中可以无'\0'
- strcpy():字符串赋值
- strcpy(str1, str2):把str2内容赋给str1
- strtok():字符串切分
- strtok(str1, char* tag):将str1按tag划分
- 示例代码
#include<stdio.h>
#include<string.h>
int main()
{
char str[100];
char strs[100][100];
int i,n=0;
gets(str);
/*遍历方式*/
char* p = strtok(str, " ");
while(p)
{
strcpy(strs[n++], p);
p = strtok(NULL, " ");
}
for(i = 0; i < n; i++)
printf("%s\n",strs[i]);
}
#include<stdio.h>
#include<string.h>
int main()
{
char a[] = {'a','b','c'};
char *b ;
char c[] = {'a','b','c','\0'};
b = "abc";
int i,j;
printf("%d\n", strlen(a));
printf("%d\n", strlen(b));
printf("%d\n\n", strlen(c));
printf("%d\n", sizeof(a));
printf("%d\n", sizeof(b));
printf("%d\n", sizeof(c));
printf("%d\n\n", strcmp(a,c));
for(i = 0; i < strlen(b); i++)
printf("%c ", b[i]);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用