【黑马程序员】C语言字符串
来源:互联网 发布:贵阳大数据是做什么的 编辑:程序博客网 时间:2024/05/09 12:24
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、字符串的基本概念
字符串是位于双引号中的字符序列
在内存中以“\0”结束,所占字节比实际多一个 注意:
1.可以把一个字符常量赋给一个字符变量,但不能把字符串常量赋给字符变量
2.C语言中没有字符串变量,可以用字符数组来存放字符串
二、字符数组定义
char 数组名[常量表达式]
字符数组也可以是二维或多维数组。
char 数组名[常量表达式1][常量表达式2]
注意:定义字符数组时,应确保数组长度比字符串长度至少多1
三、字符数组初始化
1) 定义的同时进行初始化
字符数组也允许在定义时作初始化赋值。
例如: char c[10]={'c', ' ', 'p', 'r', 'o', 'g', 'r', 'a','m'};
当对全体元素赋初值时也可以省去长度说明。
例如: char c[]={'c', ' ', 'p', 'r', 'o', 'g', 'r', 'a', 'm' };
第二种
char c4[10]={"abc"}
第三种初始化方法:
char c5[5]="ab";
char c6[]="afdsafas";
2) 先定义再初始化:
char c7[3];
c7[0] = 'a';
c7[1] = 'b';
c7[2] = 'c';
注意:未被使用的元素均被自动初始化为0
注意点:
1.如果以%s格式进行输入的话,注意空格问题,如果输入的字符串有空格的话,则空格之后的字符无法被接受保存。(以%s的格式输入,scanf遇到了空格,就结束了)
2.输入的字符串的长度要小于数组的长度
<span style="font-size:14px;">//// main.c// 字符串长度计算方法// 判断字符串中是否包含某个字符,如果包含,返回其首次出现的位置,否则返回-1// Created by Brisinga on 15/11/15.// Copyright © 2015年 yan. All rights reserved.//#include <stdio.h>/** 思路: 函数 参数:字符串数组 1.判断是否==’\0‘ 如果是 =='\0' 结束 判断==key return i; */char search(char str[],char key){ for (int i=0; i!='\n'; i++) { //如果等于\0 结束循环 if (str[i]==key) { return i; } } return -1;}int main(int argc, const char * argv[]) { char str[] = "asdjfosdfdf"; //定义一个字符串 int result = search(str,'a'); printf("%d\n",result); return 0;}</span>
四、字符串处理函数
字符串函数的使用
使用puts和gets必须包含头文件 stdio.h
puts()输出一个字符串
puts(字符数组名)
1.puts函数可以自动换行么? 可以
2.也可以不是数组的首地址,可以是元素的地址
gets()输入一个字符串
gets(数组名)
1.可以接收空格
需要包含 string.h头文件
strcat() 连接一个字符串
1.格式:strcat(oldstr,newstr);
2.oldstr的长度要足够大要能够保存下oldstr+newstr
3.newstr把oldstr的最后一个字符’\0’给覆盖掉了
strcpy字符串拷贝函数
strcpy(oldstr,newstr) oldstr的内容会被覆盖
strcmp比较两个字符串的大小
strcmp(str1,str2)
函数返回值>0 str1>str2
<0 str2<str1
==0 str1==str2
strlen计算字符串的长度
五、应用
从键盘输入一个字符串,统计输入单词的个数,并将首字母大写
<span style="font-size:14px;">//// main.c// 单词首字母大写&统计单词个数// 使用gets函数从键盘输入一个字符串,判断输入的有多少个单词?首字母大写// Created by Brisinga on 15/11/15.// Copyright © 2015年 yan. All rights reserved.//#include <stdio.h>int main(int argc, const char * argv[]) { //定义一个数组用来接收字符串 char str[100]; //定义一个flag判断是否是单词 int flag = 0; //定义一个变量用来存储单词的个数 int count = 0; //提示用户输入一个字符串 printf("请输入一个字符串:\n"); gets(str); for (int i=0; str[i]!='\0'; i++) { if (str[i]==' ') { //如果str[i]为空格,则str[i+1]标记为单词 flag = 0; }else if(flag==0){ count++; //单词个数+1 str[i] = str[i]-32; //单词首字母大写 flag = 1; } } printf("%s,单词个数为:%d\n",str,count); //输出结果 return 0;}</span>
- 黑马程序员---c语言字符串
- 【黑马程序员】C语言字符串
- 黑马程序员 C语言-----字符串学习理解
- 黑马程序员---C语言数组与字符串
- 黑马程序员---C语言数组与字符串
- 黑马程序员-c语言字符串
- 11、黑马程序员-C语言字符串
- 黑马程序员--c语言:字符串、指针
- 黑马程序员------C语言-----数组和字符串
- 黑马程序员--C语言 数组 字符串
- 黑马程序员---c语言 数组和字符串
- 黑马程序员IOS-C语言-数组、字符串
- 黑马程序员------C语言基础 字符串
- 黑马程序员-----------C语言基础-----------字符串
- 黑马程序员-C语言回顾-字符串
- 黑马程序员-C语言-数组与字符串
- 【黑马程序员】C语言学习笔记之字符串(十)
- 黑马程序员 _4 C语言基础 数组,指针,字符串
- lightOj1006 Hex-a-bonacci
- 初级程序员经典面试题 NSDictionary字典类型的错误经典实例
- 生成json文件
- 全球数据共享网站集合
- CoreData 之间的关系
- 【黑马程序员】C语言字符串
- Word Search
- STM32l151低功耗芯片串口通信(HAL库)
- 你选择做个什么样的程序员
- 将两个字符串连接起来,不要用strcat函数。
- 在携程使用TestNG/JUnit 并行跑Appium 有两个关键的地方
- Linux安装mariadb新版本
- 习作-知乎收藏夹观察者(上)
- Java编程准备:了解Java