c语言(三)字符串、数组

来源:互联网 发布:php读取数据库并显示 编辑:程序博客网 时间:2024/05/18 06:15

scanf("%*s")代表的意思是:*表示输入项在读入后不赋值给相应的变量

例如:

while(int result = scanf("%d",&choise) != 1){

if(result ==1){}

scanf("%*s")//这句话的作用是清空个缓冲区,否则while循环中result会去缓冲区中取值,不会获得重新输入的值。这句话等价于:fflush(stdin);

}


c语言中的字符串



定义字符串的几种方式:

第一种方式:
char name1[] = {'j','a','c','k','\0'}; //字符串与字符数组的区别是,最后一位是否是空字符。
第二种方式:
cahr names2[] = "jack";
第三种方式:
char * names3 = "jack";


字符串中的一些函数:

字符串连接:strcat(str1,str2);将str2拼接到str1后面


指向字符串的指针:

char * words = "My heart is still.";
words += 9; //words指针向后移动9个
puts(words);//结果是"is still."

声明数组的时候,数组形式和指针形式的区别是:
初始化字符数组的时候会把静态存储区的字符串拷贝到数组中。//说明用字符数组声明字符串的时候,静态存储区中存一份,内存中又存了一份
初始化指针时只把字符串的地址拷贝给了指针。//只是把指针给了它,可以直接操作这块地址


c语言中结构的定义:

结构是一种构造数据类型,由若干数据项组合而成

struct strctName{
//结构成员
DataType var1;
DataType var2;
//...
}
示例:



使用方式如下:


嵌套结构示例:



还有一种访问对象属性的方式是通过指针,ptr_Player->name。就可以访问到Player的name属性。

另一种定义结构体的方式如下:
typedef struct _job
{
}Job;
这样以后使用的时候就可以:Job job;