C语言基础--字符串

"本文介绍了C语言中如何处理字符串,由于C语言没有内置的字符串类型,它使用字符数组来表示字符串。详细讲解了一维数组的创建、索引和调用,并重点讨论了字符串的创建,包括字符数组和双引号定义两种方式,以及相应的输出方法。同时,提到了字符串输出时需要注意的结束符''和%s输出修饰符的使用。"
摘要由CSDN通过智能技术生成

前言

C语言中,有整型、浮点型、指针类型和字符型,但没有字符串型,在有些语言中是存在字符型类型的。
例如(python),在python中可以直接给变量赋上一个字符串:

//声明字符串
str = "hello,worlde"

例如(java) ,在java中可以通过 String 类来声明字符串:

public class test{
	public static void main(String[] args){
		String s1 = "hello,world";
		System.out.println("s1 = " + s1);
	}
}

在Golang里也可以很好的创建字符串:

package main
import ("fmt")
func main(){
	var str = "hello,world"
	fmt.Println(str)
}

但是在C语言中我们没有这些原生的字符串类型或者是可以用的类方法,那C语言该如何创建字符串类型呢?


一、数组

在讲如何创建字符串前先简单讲一下数组的知识

1.一维数组的创建

一维数组的创建有两种方式,一种是静态创建,另一种是动态创建,在这里只是介绍一下,具体数组的知识可以查看我之前的文章。
动态数组的创建

type arrname[number];

type:数组的类型
arrname:数组的名字
number:数组储存的大小

静态数组的创建
静态数组的创建就是直接把值赋给数组,不表明这个数组的存储大小,计算机会自动计算这个数组的大小。

type arrname[] = {value1, value2,....};

在大括号里存放你要储存的值,如果是多个数据需要使用英文逗号分开。

2.数组的索引

学过python或者Java的小伙伴们应该知道,python里面的列表的索引是从0开始,但C里的数组是不能从负数开始的。C里面的数组和Java里的数组一样,索引是从0开始。
例如下面的代码:

#include <stdio.h>
int main(){
	int arr1[] = {1,2,3,4};
	return 0;
}

我在arr1这个数组里存放了4个int类型的数字,这个数组的索引如图所示
arr1数组的索引
可以看到存放1位置的索引值为0,然后依次相加。

3.数组的调用

紧接着上面那个代码,我们要将里面的数值输出出来。

3.1 单个输出

我们可以使用

printf("%d", arr1[0]);

通过数组的索引值输出对应位置的内容
代码
输出结果

3.2多个输出

代码2
运行结果


二、字符串的创建

在C语言中,字符串的创建就是在一个字符数组中存放很多字符,然后通过多行输出直接输出出来

1.字符串的创建

char arr1[] = {'h','e','l','l','o'};

把需要的内容存入数组里
还有一种是直接用双引号括起来

char arr1[] = "hello";

注意:这两种方法虽然都可以创建字符串,但两种创建方式是不一样的,
第一种方式在数组中的格式是这样的:
在这里插入图片描述
而第二种
在这里插入图片描述
第一种是直接把内容放进去,而第二种是在最后添加个\0

2.字符串的输出

第一种创建方式的输出只能使用遍历输出的方式,因为第一种创建方式最后没有\0
在这里插入图片描述
输出的结果
在这里插入图片描述

第二种创建方式可以使用两种输出方式
第一种输出方式
在这里插入图片描述
在这里插入图片描述
然后第二种方式我们可以使用%s修饰符来修饰输出

%s是以字符串形式输出
在这里插入图片描述

这种方式输出是可以把for语句省略的,但一定注意创建必须用第二种方式创建,否则就会出现下面这种情况
在这里插入图片描述
在这里插入图片描述
出现的原因是因为%s输出是以\0为结束的,如果在字符串中没有识别到\0则会一直输出下去,所以就会出现乱码。

等学到指针就会更明白这个问题出现的原因了

三、总结

关于C语言的字符串的创建就结束了。
简单总结就是:
1.字符串必须存放在数组中。
2.输出字符串就使用输出数组中的内容的方式就可以。
3.注意字符串创建方式和%s的用法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恰柠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值