【Day 25】C String

接着我们要说说 C String!C string 是字元阵列,通常会使用 pointer 来做应用。还有另一种字串:C++ string,则是一种物件(object),不过由於这门课还是一门基础课,这边就先不介绍 C++ string。

char

当我们要宣告字串的时候,就须要宣告他的变数类型为char的阵列,而其值我们在VS code中必须以双引号 框起来。而引号内的值会以 ASCII code 记。

例如:

char c = ‘0’;

这时候如果我们输出其结果,会输出 0 的 ASCII code,也就是’48’。
反之,

char c = 48;

输出则会得到数字0

我们可以拿字元阵列与一般的阵列来做比较:

int values[5] = {0};
cout << values;

结果并不意外,会出现一组 address,也就是values的 address。

char str[10] = “abcde”;
cin >> str;
cout << str;

Char str[10] 意思是这个str字串输出结果为 abcde

另外,要特别注意的是,我们可以写

int b;
b = 0;

但是我们不能以同样的逻辑初始化字元阵列,像是

char s[100];
s = “this is a string”;

Null Character

Null character 我们记为\0,电脑会自己存,代表一个字串的结束。

也就是说,以以下例子来看:
不过并不是每一种情形 null character 都会被加入,
初始化的时候:

char s[10] = "abc";    // null character
char s[100] = {'a', 'b', 'c'};    // no \0

input 也有两种情况:

cin >> s;    // null character
cin >> s[0];    // no \0

cin.getline ( )

再来,我们可能会遇到一个问题:

char a1[100] = {0};
cin >> a1;	// “this is a string”
cout << a1;	// “this”

明明我们就是输入一个句子ㄟ!为什麽输出却只能输出一个词!
原来cin会根据空白键来切割输入的字串,这时候我们的解决办法就是使用cin.getline()
cin.getline( )的用法就是括号中前面放字串名称,後面放字串长度,中间以逗号隔开。

char a[100];
cin.getline(a, 100);
cout << a;

如此一来,就能输出任何我们想要的东西!

Function

最後最後,来介绍一些跟字串有关的函数:
strlen
用来计算字串长度。
toupper
把所有字元都换成大写。
tolower
把所有字元都换成小写。
strstr
strstr(first, second)就是找second有没有在first中出现,在找关键字时很实用。

那 C string 的部分就告一段落啦!


<<:  Day 25【Deploy NFT - Layers Blending & MetaData】Read the License

>>:  Day22 - 悬浮视窗

Chat & SignalR (Server)

今天想要练习一个简单的聊天室,输入使用者名称後,就可以进房聊天,主要使用 ASP.NET Singa...

[Day24]创建Table及捞取资料

创建migration迁移档案 首先先使用artisan指令: make:migration 创建一...

Day34. 范例:歌曲排行(迭代器模式)

本文同步更新於blog 需求一:KTV系统要按照新增到系统的时间,由旧到新,实作歌曲排行 定义系统...

Day028-透过Vuex-实作简易部落格-修改文章

Vue:实做部落格最後一步骤,就是修改文章!上一篇已经了解如何将id生成,如此才可以做个别文章上的操...

iOS APP 开发 OC 第十一天,block 简写

tags: OC 30 day void (^myBlock1)() = ^void(){ NSLo...