字符串
来源:互联网 发布:微信默认浏览器淘宝 编辑:程序博客网 时间:2024/05/06 06:39
字符串:
是一串字符,也是一个以'\0'结尾的字符数组
#include<stdio.h>
int main(){
//定义及初始化
char arr[]="abc";
char arr1[]={'a','b','c','\0'};
char arr2[]="abc0"; //0会输出 0表示字符
char arr3[]={'a','b','c',0};
printf("%s,%s,%s,%s\n",arr,arr1,arr2,arr3); //运行结果:abc,abc,abc0,abc
return 0;
}
赋值:strcpy
//strcpy的用法,strcpy用于赋值
#include<stdio.h>
#include <string.h>
int main(){
char arr[8];
strcpy(arr,"ehfue");
for (int i=0; i<8; i++) {
printf("%c",arr[i]);
}
printf("\n");
return 0;
}
特点:
1.后面必须有'\0'结尾.否则只算普通字符数组,但'\0'不会输出,只表示字符串结束.
2.字符串输出占位用%s必须遇到\0.才能结束.否则会继续输出更高位地址值的字符.
#include <stdio.h>
int main(){
char s[]="abc";
char s1[]={'a','b','c'};
char s2[]="haha";
printf("s=%s,s1=%s1,s2=%s\n",s,s1,s2); //运行结果:s=abc,s1=abcabc1,s2=haha
printf("%lu\n",sizeof s); //运行结果:4
return 0;
}
3.strlen函数用于计算一个字符串的长度(字符数量),使用必须引入<string.h>.
4.strlen不会计算\0.且碰到\0结束,但是sizeof不受\0的影响,且长度会包含\0;
#include <stdio.h>
#include <string.h>
int main(){
char s[]="abc";
int a=strlen(s); //不计算\0
int b=sizeof(s); //计算\0
printf("a=%d,b=%d\n",a,b); //运行结果:a=3,b=4
return 0;
}
注意:中文字符=3个英文字符
5.字符串一定是字符数组,但字符数组不一定是字符串.
字符串数组是一个二维数组.
练习
//定义一个字符串数组,并打印所有字符串
#include <stdio.h>
int main(){
char arr[3][10]={"adbd","dfjie","dfjie"};
for (int i=0; i<3; i++) {
printf("%s\n",arr[i]);
}
}
//编写一个函数,判断一个字符串中是否包含某个字符,包含返回1,不包含返回0(用两种方法);
//方法一:
#include <stdio.h>
#include <string.h>
int isHasChar(char arr[],char c);
int main(){
char arr[]="dfiejsof";
char a='m';
int d=isHasChar(arr,a);
printf("%d\n",d);
}
int isHasChar(char arr[],char c){
int result=0;
for (int i=0; i<strlen(arr); i++) {
if (arr[i]==c) {
result=1;
break;
}
}
return result;
}
//方法二:
#include <stdio.h>
#include <string.h>
int isHasChar(char arr[],char c);
int main(){
int i=0;
char arr[]="dfiejsof";
char a='d';
int d=isHasChar(arr,a);
printf("%d\n",d);
}
int isHasChar(char arr[],char c){
int i=0;
while (i<strlen(arr)) { //判断可以为arr[i]!=0或arr[i]!='\0'
if (arr[i]==c) {
return 1;
}
i++;
}
return 0;
}
0 0
- 字符串
- 字符串
- 字符串
- 字符串
- 字符串
- 字符串
- 字符串
- 字符串
- 字符串
- 字符串
- 字符串
- 字符串
- 字符串
- 字符串
- 字符串
- 字符串
- 字符串
- 字符串
- 内存学习
- 调试番外篇 - KGDB环境搭建与使用
- 编程题#5:计算数组的低3位之和(C++程序设计第10周)
- Java基础08 继承
- (java) Search for a Range
- 字符串
- 算法提高 扶老奶奶过街 蓝桥杯 java详解
- 20160202.CCPP体系详解(0012天)
- UI进阶第一天(给大家拜个晚年)
- 20160203.CCPP体系详解(0013天)
- Java基础09 类数据与类方法
- 20160204.CCPP体系详解(0014天)
- 雅虎财经取数-excel vba VS python
- spring aop入门