c语言 字符串

字符串

  • 以0(整数0)结尾的⼀串字符
  • 0或’\0’是⼀样的,但是和’0’不同
  • 0标志字符串的结束,但它不是字符串的⼀部分
  • 计算字符串⻓度的时候不包含这个0
  • 字符串以数组的形式存在,以数组或指针的形式访问,更多的是以指针的形式
  • string.h ⾥有很多处理字符串的函数

字符串变量
• char *str = “Hello”;
• char word[] = “Hello”;
• char line[10] = “Hello”;

字符串常量
• “Hello” 
• ″Hello″ 会被编译器变成⼀个字符数组放在某处,这
个数组的⻓度是6,结尾还有表⽰结束的0 
• 两个相邻的字符串常量会被⾃动连接起来
• ⾏末的\表⽰下⼀⾏还是这个字符串

字符串

• C语⾔的字符串是以字符数组的形态存在的
• 不能⽤运算符对字符串做运算
• 通过数组的⽅式可以遍历字符串
• 唯⼀特殊的地⽅是字符串字⾯量可以⽤来初始化字符
数组
• 以及标准库提供了⼀系列字符串

#include<stdio.h> 
#include<stdlib.h>
int main(){
	char *s="Hello World";
	printf("s[0]=%c\n",s[0]);//H
	s[0]='B';
	printf("s[0]=%c\n",s[0]);//错误,指向的位置是只读代码段,不能修改
	return 0;
} 

char*是字符串?No!
• 字符串可以表达为char*的形式
• char*不⼀定是字符串
• 本意是指向字符的指针,可能指向的是字符的数组(就像int*⼀样)
• 只有它所指的字符数组有结尾的0,才能说它所指的是字符串

字符串赋值

字符串输入输出

 

#include<stdio.h> 
#include<stdlib.h>
int main(){
	char word[8];
	char word2[8];
	scanf("%7s",word);
	scanf("%7s",word2);
	printf("%s# %s#\n",word,word2);
	/*
	123 12345678
	123# 1234567#
	*/ 
	/*
	123456789 11
	1234567# 89#
	*/
	return 0;
} 

利用汇编小知识:为什么如果字符串输入超过8个字符,就什么东西也没有输出呢?

字符串数组

  程序参数

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值