亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

【九月打卡】第15天【養成記】嵌入式挑戰第15天,C語言中的函數:字符串相關操作函數

標簽:
嵌入式

课程章节:

  • 课程名称:物联网/嵌入式工程师
  • 章节名称:第4周之第四讲 1-11 至 1-12 C语言中的函数:函数传参的数组
  • 讲师姓名:大白老师

课程内容:

C语言中的函数:字符串相关操作函数1

字符串相关API

strcpy 字符串拷贝函数

头文件 : #include <string.h>

strcpy(char dest[], char src[])  -----string copy
功能: 把src数组中'\0'之前的所有字符,连同'\0'一起拷贝到dest中去。
      要求在定义dest的时候,要足够大.
参数:
   @ dest    目标数组 
   @ src     源数组---- [数组首地址或字符串]

例如:
char buf[20] = {0};

strcpy(buf,"hello");

printf("buf = %s\n",buf);

代码示例:

#include <stdio.h>
#include <string.h>

int main()
{
    char buf[20] = {'h','e','l','l','o','\0'};
    int i = 0;

    strcpy(buf,"QQ");

    for(i = 0;i < 20;i++)
    {
        printf("%c : %d\n",buf[i],buf[i]);        
    }
    
    printf("buf = %s\n",buf); // QQ

    return 0;
}

执行结果:
104-strcpy

strcat 字符串连接函数

头文件: #include <string.h>

strcat(char dest[], char src[]);
功能:把src数组'\0'之前的字符串追加到dest字符串后,若是dest中有'\0',
     会把dest中的'\0'给覆盖掉,然后新组成的dest字符串会重新添加'\0'

参数:
        @ dest  目标数组
        @ src   源数组  [字符数组或字符串]

例如:
char buf[] = "hello";

strcat(buf," world");  //===> buf <===>"hello world"

代码示例

#include <stdio.h> 
#include <string.h>

int main()
{
    char word[20];
    char explain[20];
    char sql[50];

    //1.输出单词
    printf("please input you select word : ");
    gets(word);

    //2.输入意思
    printf("please input word explain : ");
    gets(explain);

    //3.合成一个新的数据存放到sql中
    strcpy(sql,word);        
    strcat(sql,explain);

    printf("%s\n",sql);
    return 0;
}

执行结果:
105-strcat

C语言中的函数:字符串相关操作函数2

字符串相关API

strlen 字符串长度计算函数

头文件: #include <string.h>

int strlen(const char s[]);
功能:计算s数组中第一个'\0'前字符的个数,并返回

参数:
        @   目标数组,存放字符串
返回值:返回计算的字符个数

例如:
char buf[] = "hello";

int len = strlen(buf);

pritnf("len = %d\n",len); // 5

代码示例

#include <stdio.h>
#include <string.h>  // strlen

int main()
{
    char buf[100];

    printf("please input string : ");
    scanf("%s",buf);

    //计算用户实际输入元素个数.
    printf("strlen(buf) = %d\n",strlen(buf));

    //sizeof计算数据所在内存空间的大小
    printf("sizeof(buf) = %d\n",sizeof(buf)); //100
    return 0;
}

执行结果:
106-strlen

strcmp 字符串比较函数

#include <string.h>
int strcmp(char s1[], char s2[]);
功能:  对s1和s2字符串中的每个字符逐个比较,
       若是s1中某个字符>s2中的某个字符,则返回大于0的数,
       若是s1中某个字符<s2中的某个字符,则返回小于0的数,
       若是当前s1和s2的字符相等,则比较后一个字符。若是完全相等,返回0
参数:  
 @ 待比较的数组s1   [字符串或字符数组]
 @ 待比较的数组s2    [字符串或字符数组]
返回值:
在gcc的32bit编译器下,返回如下值:
若是s1 > s2 ,返回1
若是s1 == s2, 返回0
若是s1 < s2 ,返回-1

char buf1[] = "hello";
char buf2[] = "heltt";

ret = strcmp(buf1,buf2);

代码示例

#include <stdio.h>
#include <string.h>  // strcmp

int main()
{
    char buf1[20];
    char buf2[20];
    int ret = 0;

    printf("please input string buf1 : ");
    gets(buf1);

    printf("please input string buf2 : ");
    gets(buf2);

    ret = strcmp(buf1,buf2);
    printf("ret = %d\n",ret);
    
    if(ret > 0)
    {
            printf("buf1 > buf2");        
    }else if(ret == 0){

            printf("buf1 == buf2");        
    }else if(ret < 0){
    
            printf("buf1 < buf2");        
    }
                    
    putchar('\n');
    return 0;
}

执行结果:
107-strcmp

学习笔记:

课后任务

练习

char buf[] = "I Love China";

(1)设计一个count_uppercase_character()函数,自己定义参数和返回值,要求
   统计上述数组中大写字符的个数。
(2)调用自己设计的函数,并输出。

代码


执行结果:
108-practice

课程评价:

通过学习字符串相关操作函数,能够熟练掌握程序中的字符串操作。

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消