标签:帮助 字符串的比较 零基础 大小 取出 返回 char* asc 一段
之前我们已经学过单个字符的文字型数据(char)。同时了解过字符串。
在C语言中,字符串用双引号包围。
#include <stdio.h>
int main(int argc, char* argv[])
{
printf("Hello");
return 0;
}
字符串不是C语言中的基本数据类型。在我们之后的学习中可以看到,它是根据约定存储多个char数据的一种方式。
为了方便研究,我们将以上代码进行修改:
#include <stdio.h>
int main(int argc, char* argv[])
{
char* szHello = "Hello";
printf("%s", szHello);
return 0;
}
实际上,当我们定义
"Hello"
时,编译器帮助我们做了以下几件事情:
#include <stdio.h>
int main(int argc, char* argv[])
{
char* szHello = "Hello";
printf("Hello字符串的空间大小: %d\r\n", sizeof("Hello"));
printf("Hello字符串的首地址: %08X\r\n", szHello);
return 0;
}
我们甚至可以结合数组的知识,将字符串空间对应的char数据,一个个取出来,并输出:
#include <stdio.h>
int main(int argc, char* argv[])
{
char* szHello = "Hello";
int i = 0;
for (; i < sizeof("Hello"); i++)
{
printf("%d: ASCII数值:%d, 对应字符:%c\r\n",
i, szHello[i], szHello[i]);
}
return 0;
}
注意:C语言中规定以数字0作为字符串的结尾。
因为字符串中的每一个元素都是char类型,所以与字符数组有相似的地方。比如:
#include <stdio.h>
int main(int argc, char* argv[])
{
char* szHello = "Hello";
char chAry[] = "Hello";
printf("%s, %s\r\n", szHello, chAry);
return 0;
}
但实际上是有区别的:
#include <stdio.h>
int main(int argc, char* argv[])
{
char* szHello = "Hello";
char chAry[] = "Hello";
chAry[0] = 'j';
printf("%s\r\n", chAry);
szHello[0] = 'j';
printf("%s\r\n", chAry);
return 0;
}
简而言之:
标签:帮助 字符串的比较 零基础 大小 取出 返回 char* asc 一段
原文地址:https://www.cnblogs.com/shellmad/p/11695543.html