C语言字符串操作

几个好用的函数:

#include<string.h>

1.strlen

求字符串长度好计数用

直接得出字符串长度

2.strcpy

内容拷贝

把\0也拷贝进去(相当于提前\0)

对传入内容后的数组进行打印或求字符串长度时遇到\0都会停止,相当于操作原数组的效果

注意:目标空间必须足够大,以确保能完整存放原字符‘

目标字符串

后者内容传入前者相应位置

3.strcat

把后者指向的内容复制到前者内容的后面

删除原来的\0

保证目标空间足够大

不可以自己替自己

4.strcmp

比较大小

若<返回负数

=返回0

>返回+

5.puts

只能操作字符串

输出并换行(ch+\n)

可以将字符串直接写入puts

6.gets

把读到的字符串写入数组

scanf读到空格就停止

gets读到回车才停止,处理可能含空格的字符串更好用

实操:

1.统计单词数

思路:用strlen求出总长度(看结尾\0),通过空格判断单词个数得以实现

#include "stdio.h"
#include "string.h"
int main(){
    char a[100];
    gets(a);
    int m,i,j;
    m=strlen(a);
    if(a[0]==' ')j=0;
    else j=1;
    for(i=0;i<m-1;i++){
        if(a[i]==' '&&a[i+1]!=' ')
            j++;
    }
    printf("%d\n",j);
    return 0;
}

非特殊情况计数器起始为1

2.用strlen实现求字符串长度

思路:先用gets输入可能含空格的字符串然后用strlen求字符串长度

注意:char a[100]

#include "stdio.h"
#include "string.h"
int main(){
    char s[100];
    gets(s);
    int l=strlen(s);
    printf("%d",l);
    return 0;
}

3.指针实现字符串值的交换:用指针的指针做(取指针的地址)

#include "stdio.h"
void swap(char **p,char **q){
    char *i=*p;
    *p=*q;
    *q=i;
}
int main(){
    char a[50],b[50];
    char *str1=a,*str2=b;
    gets(a);
    gets(b);
    swap(&str1,&str2);
    puts(str1);
    puts(str2);
    return 0;
}

4.字符串替换

编写程序,将字符串中的所有大写英文字母按以下对应规则替换,其余类型的字符不替换:

原字母:    ABCD……XYZ

替换后字母:ZYXW……CBA

输入:在一行中输入一个不超过99个字符、并以回车结束的字符串。

输出:在一行中输出替换完成后的字符串。

注意:在一类字符中进行的操作就通过一类字符的运算

#include "stdio.h"
int main(){
    char a[100];
    gets(a);
    char *p=a;
    while(*p!='\0'){
        if(*p>='A'&&*p<='Z')
            printf("%c",'A'+'Z'-*p);
        else printf("%c",*p);
        p++;
    }
    return 0;
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值