赞
踩
int puts(const char *s);
功能:
输出一个字符串
参数:
s //表示字符串 -- 指针类型
//字符数组名 s
//字符串常量 "hello"
返回值:
成功 非负数
失败 -1
注意:
puts输出时 自动会加 换行
- char s[]="hello";
- puts(s);
char *gets(char *s);
功能:
从键盘获得一个字符串
参数:
s //代表就是一块存储空间 --- 需要的是一个一维字符型数组的数组名
返回值:
成功 s
失败 NULL
- char s[100];
- gets(s);
与getchar的区别:调用方式不同,getchar是给一个返回值,不用参数,gets则是需要一个参数。
- char s1;
- char s2[100];
- s1 = getchar;
- gets(s2);
求字符串长度
char s[] = "hello"; s的长度是数组的长度 6 ,包含了‘\0’。
char s[10] = "hello";s的长度数组的长度 10
字符串长度 一个字符串的长度是'\0' 前面字符个数如 "hello" 字符串长度为5个 字节,它所占的内存空间的字节数是 6 个,要算上‘\0',但是说字符串长度就不考虑‘\0’。
下面的程序的功能是计算一个字符串的长度:
- #include <stdio.h>
-
- int main (void)
- {
- char s[100]={};
- gets(s);
- int i=0;
-
- do
- {
- i++;
- }while(s[i]!='\0');
-
- printf("%d\n",i);
- return 0;
- }
完成这一功能有函数strlen
字符串函数
size_t strlen(const char *s);
功能: 计算字符串长度
参数: s //表示需要一个指针,可以给的参数形式a.数组名 b.字符串常量
返回值为返回字符串长度
调用这个函数要包含头文件 <string.h>,后面介绍的函数都需要包含这个头文件。
- //调用
- char s[]="hello";
- strlen(s);
- strlen("world");
下面的代码完成了复制字符串的功能
- #include <stdio.h>
- #include <string.h>
- int main (void)
- {
- char s1[100];
- char s2[100] = {'a','a','a','a','a'};
- gets(s1);
- int i = 0;
- while(s1[i] != '\0')
- {
- s2[i] = s1[i];
- ++i;
- }
- s2[i] = '\0';
-
- puts(s2);
- return 0;
- }
完成这一功能有函数strcpy
char * strcpy(char *dest, const char *src);
功能: 复制字符串,将src中字符串,复制到dest
参数:
src // 表示原字符串 可以给的实参形式: a.一维字符数组名。b.字符串常量
dest // 表示目的字符 可以给的实参形式:一维字符数组名
- //调用
- char s1[]="hello";
- char s2[10];
- strcpy(s2,s1);//将s1中字符串复制给s2
拼接字符串
下面的代码实现了字符串拼接
- #include <stdio.h>
- #include <string.h>
-
- int main (void)
- {
- char s1[100];
- char s2[100];
- gets(s1);
- gets(s2);
- //int n = strlen(s2);
- #if 0
- int i=0;
- while (s1[i]!='\0')
- ++i;
- int j=0;
- while (s2[j]!='\0')
- {
- s1[i]=s2[j];
- ++i;++j;
- }
- s1[i]='\0';
- #endif
- strcat(s1,s2);
- puts(s1);
- return 0;
- }
完成这一功能有函数
strcat
char *strcat(char *dest, const char *src);
功能:拼接字符串
参数: dest //目的字符串 可以使用的实参形式 一维字符型数组名
src //源字符串 可以使用的实参形式 a.一维字符型数组名 。b.字符串常量 。
- //调用
- char s1[]="hello";
- char s2[20]="world";
- strcpy(s2,s1);
字符串比较
比较规则:
字符串比较的规则与其他语言中的规则相同,
即对两个字符串自左至右逐个字符相比(按 ASCII 码值大小比较),
直到出现不同的字符或遇到'\0' 为止。
如全部字符相同,则认为相等;
若出现不相同的字符,则以第1个不相同的字符的比较结果为准。
下面的代码实现字符串比较大小的功能:
- #include<stdio.h>
-
- int main (void)
- {
- char s1[100];
- char s2[100];
- gets(s1);
- gets(s2);
- int i=0;
-
- while (s1[i] == s2[i] && s1[i] != '\0' && s2[i] != '\0')
- {
- ++i;
- }
-
- if (s1[i] > s2[i])
- printf("s1 > s2");
- else if (s1[i] < s2[i])
- printf("s1 < s2");
- else
- printf("s1 = s2");
- printf("\n");
-
- return 0;
- }
实现这一功能有函数strcmp
int strcmp(const char *s1, const char *s2);
功能:比较字符串大小
参数:
s1 //字符串
s2 //字符串 可以是数组名 字符串常量
返回值: //最后 停的位置上字符的差值 来反映大小
s1 > s2 // >0
s1 == s2 // 0
s1 < s2 // <0
- //调用
- char s1[]="hello";
- char s2[20]="hell";
- strcmp(s2,s1);
类型说明符 数组名[常量表达式][常量表达式]
(1) (2) (3) (4)
(1) 类型说明符 --- 用来说明数组中存储数据的类型 //
(2) 数组名 --- 标识符
(3) 常量表达式 --- 行 --多少行
(4) 常量表达式 --- 列 --多少列
初始化:
- //数组初始化:
- int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};//全部初始化
- int a[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};//全部初始化
- int a[3][4] = {1,2,3,4,5,6};//部分初始化
- int a[3][4] = {{1,2},{5,6},{9,10}};//部分初始化
部分初始化未初始化部分值默认为0。
赋值:用循环赋值
数组元素的引用:数组名 [行][列];
注意:
1.c语言中,并不存在真正的二维数组,都是用一维数组模拟的。
2.二维数组的本质 是 一维数组类型的一维数组( 数组的数组 )。
3.二维数组数据存储时, 按行优先存储
4.多维数组 :
int a[3][4];
int a[3][4][5]; //三维数组 --- 是二维数组类型的一维数组
int[4][5] a[3] //n维数组 --- n-1维数组类型的 一维数组
二维数组的用途:处理图片
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。