【黑马程序员】C语言字符串

原创 2015年11月17日 16:37:01

------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>


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

黑马程序员 _4 C语言基础 数组,指针,字符串

一、数组 数组就是将一组相同类型的数据收入进一个变量里面,便于管理像是n个人的年龄,或者是m个人的学号,二维数组就是多个一维数组归入到一个变量里面。 数组的特点是:只能存放一个类型的数据,此数据称之为...

黑马程序员——C语言基础---字符串

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------                      第一讲    字符串的基...

黑马程序员——C语言------指针和一维数组、字符串、函数

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 指针和一维数组   今天主要学习了指针在一位数组和字符串中的应用 一、指向一维度数组元素的指针...

【黑马程序员】C语言字符串指针介绍及使用

1.字符串指针 在c语言中,可以用两种方法访问一个字符串: 1)字符数组 char string[]=“I LOVE CHINA”; 2)字符串指针指向字符串 char *变量名=“字符串的内容”;/...

黑马程序员——C语言基础篇---宏定义、数组、字符串和函数

通过一道题来解析宏定义、数组、字符串和函数

黑马程序员--c语言:字符串、指针

一、字符串 1.基本应用 char name[] = {'i', 't', 'c', 'H', 's', 't', ...

黑马程序员---C语言数组与字符串

———Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——— 水煮咖啡壶vu返回v大方v胡反的话viu发

黑马程序员——C语言热身——概述、数组、字符串

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——- 简单的C程序#include main() {}预处理指令:在编译之前执行的指令,一般以 # 开头。 #inc...

黑马程序员--C语言 数组 字符串

------- ios培训、ios培训、期待与您交流! ---------- 第三讲   数组  字符串 1  数组 1>数组(array)由一系列类型相同的元素构成。可以使用声明告诉编译器您需要一个...

黑马程序员——c语言基础:数组和字符串

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、数组的基本概念 一个int类型的变量能保存一个人的年龄,如果想保存整个班的年龄呢? 1...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)