c基础 day6 字符数组

本文详细介绍了C语言中的字符串处理函数,包括strcpy用于字符串拷贝、strcpm进行字符逐个比较、strlen计算有效字符长度、stract实现字符串追加以及字符计数功能。同时提及了字符串结束标志0的重要性以及相关内存操作如bzero和memset。
摘要由CSDN通过智能技术生成

1.封装strcpy

#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
    char str1[32]="helloworld";
    char str2[32]="hqyj";
    int i=0;
    for(i=0;str1[i]!='\0';i++){
            str1[i]=str2[i];
    }
    puts(str1);
    puts(str2);

    return 0;
}
//strcpy(str1,str2);

//puts(str1);

2.封装strcpm

#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
    char str1[32]="hello";
    char str2[32]="world";
    int i,count1=0,count2=0;
    int max=0;

    for(i=0;str1[i]!='\0';i++){
        count1++;
    }
    for(i=0;str2[i]!='\0';i++){
        count2++; 
    }
    if(count1>count2)
        max=count1;
    else
        max=count2;
    for(i=0;i<count2;i++){
        if(str1[i]==str2[i]){
            if(str1=='\0'){
                printf("0\n");
                break;
            }
            continue;
        }else if(str1[i]>str2[i]){
            printf("%d\n",str1[i]-str2[i]);
            break;

        }else{
            printf("%d\n",str2[i]-str1[i]);
            break;
        }
    }
    return 0;
}

3.封装strlen

#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
    int i=0;
    char str[32]="hello world";
    while(str[i]!='\0'){
        i++;
    }
    printf("len=%d\n",i);
    return 0;
}

4.封装stract

#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
    //字符拼接
    char str1[30]="0";
    char str2[30]="0";
    int len1=0;
    int len2=0;
    int i=0;
    printf("请输入字符串1\n");
    gets(str1);
    printf("请输入字符串2\n");
    gets(str2);
    
    for(i=0;str1[i]!='\0';i++){
        len1++;
    }
    for(i=0;str2[i]!='\0';i++){
        len2++;
    }
    for(i=0;str2[i]!='\0';i++){
        str1[len1+i]=str2[i];
    }

//将s2的'\0'追加到s1中
    str1[len1+i]=str2[i];
    printf("拼接之后:");
    puts(str1);
    return 0;
}


 


5.终端输入一个字符串,再输入一个字符a,判断这个字符在字符串有几个?

#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
    int i,count=0;
    char str[32]="0";
    printf("请输入字符\n");
    gets(str);
    for(i=0;str[i]!='\0';i++){
        if(str[i]=='a')
            count++;
    }
    printf("字符a在字符串中有%d个\n",count);
    return 0;
}


 

重点:

1.strlen:不包括‘\0’,只计算有效字符长度

字符串的处理遇到'\0'就结束了

如果是字符数组就不要用strlen    例如str[30]={'h','e','l','l','o'};

while(str1[i]!='\0'){

i++;

}

2.stract:字符串的追加(将s1中的\0替代,且s1需要有足够的空间来接收s1+s2)

char s1[32]="123456\0"

char s2[32]="world\0";

stract(s1,s2);//s1="123456world\0"

3.strcpy:字符串的拷贝

strcpy(s1,s2)将s1拷贝到s2中,包括s2的'\0',且要保证s1足够大,防止越界访问

当s2比s1短的时候,s1剩余的部分还在数组中,只不过通过字符串的方式访问不到了

需要通过printf("%c\n,s1[7]);z

4.strcpm(依次按字符比较两个字符串的ASCII码)

>0  s1>s2

==0 s1=s2

<0  s1<s2

输出值为两者ASCII码值的差

strncmp(s1,s2,4):比较前四位

5.bzero(a,sizeof(a));//将字符串a置0

6.memset(str,0,sizeof(str));//将数组置0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值