字符数组及其练习

目录

​编辑

1.例子:输出字符a,b,c

2.常用函数

(1)strlen & sizeof

(2)strcpy &strncpy

  (3)   strcat &strncat

(4)strcmp & strncmp

3.专项练习

(1)单词计数

4.多维数组


 

 

1.例子:输出字符a,b,c

#include<stdio.h>
#include<stdlib.h>
#define N 3//定义3
int main(){
	char str[N] = {'a','b','c'};
	int i;
	for(i=0;i<N;i++)
		printf("%c ",str[i]);
	printf("\n");
	exit(0);
}

运行代码:

a b c 

2.常用函数

(1)strlen & sizeof实例

size_t strlen(const char *s);
#include<stdio.h>
#include<stdlib.h>
#include <string.h>

int main(){
	char str[] = "hello\0abc";
	printf("%d\n",strlen(str));
	printf("%d\n",sizeof(str));
	exit(0);
}

运行结果:

5
10

(2)strcpy &strncpy

书写格式:

       char *strcpy(char *dest, const char *src);

       char *strncpy(char *dest, const char *src, size_t n);
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(){

	char str[32] = "hello";
	strcpy(str,"abcde");
	puts(str);

	exit(0);
}

运行结果:

abcde
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define STRSIZE 32
int main(){
	char str[STRSIZE];

	strncpy(str,"abcdef",STRSIZE);
	puts(str);
	exit(0);
}

运行代码:

abcdef

(3)strcat &strncat

书写格式:

 char *strcat(char *dest, const char *src);

 char *strncat(char *dest, const char *src, size_t n);//size_t n:比较两个字符串的前n个字符

 ①strcat

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define STRSIZE 32
int main(){
	char str[STRSIZE]="hello";
	strcat(str," ");
	strcat(str,"world");

	puts(str);
	exit(0);
}

运行结果:

hello world

 ②strncat

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define STRSIZE 32
int main(){
	char str[STRSIZE]="hello";
	strncat(str," ",STRSIZE);
	strncat(str,"world!",STRSIZE);
	puts(str);
	exit(0);
}

运行结果:

hello world!

(4)strcmp & strncmp

书写格式:

int strcmp(const char *s1, const char *s2);

int strncmp(const char *s1, const char *s2, size_t n);// size_t n:比较两个字符串的前n个字符

① strcmp

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define STRSIZE 32
int main(){
	char str1[STRSIZE]="hello";//,h的ASCII码为104
	char str2[STRSIZE]="aworld";//a的ASCII码为97
	//比较字符串的ASIIC大小:如果相同为0,如果str1-str2<0,返回负值,反之。
	printf("%d\n",strcmp(str1,str2));

	exit(0);
}

运行代码:

7

 ②strncmp

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define STRSIZE 32
int main(){
	char str1[STRSIZE]="hello";//,h的ASCII码为104
	char str2[STRSIZE]="worlda";//a的ASCII码为97
	//比较字符串的ASIIC大小:如果相同为0,如果str1-str2<0,返回负值,反之。
	printf("%d\n",strncmp(str1,str2,5));

	exit(0);
}

运行代码:

-15

3.专项练习

(1)单词计数

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
	char str[128];//定义数组和范围
	int count = 0;//初始化count次数
	int i,flag=0;//i用于遍历字符串中的每个字符,flag用于标记前一个字符是否为空格
	gets(str);//获取输入数组
	for(i = 0;str[i] != '\0';i++)//遍历i:从0开始到\0,i++
	{
		if(str[i] == ' ')//如果该元素为空格
			flag = 0;//不计数
		else
			if(flag == 0)//如果flag==0,表示他前面是一个字符
			{
				count++;//count计数
				flag = 1;//把当前的flag记为1
			}
			
	}
	printf("count = %d\n",count);
}

运行效果:

hello how are you i am fine and you 
count = 9

4.多维数组

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值