首页 > 其他分享 >C语言:用指针编写字符串左截取 右截取 中间截取函数 字符串截取 字符串比较

C语言:用指针编写字符串左截取 右截取 中间截取函数 字符串截取 字符串比较

时间:2022-12-11 20:00:23浏览次数:53  
标签:src int 截取 len C语言 char 字符串 dst

#include <stdio.h>
#include <string.h> 
struct data {char name[7];int age;} ab[5]={"张三",10,"李四",11,"张五",12,"李六",13,"陈七",14}; 
//编程将数组中所有姓张的年龄增加1,姓李的增加2,然后输出各个人的姓名与年龄 
//中文字符串的 截取  比较 
/*从字符串的左边截取n个字符*/
char * left(char *dst,char *src, int n)
{
    char *p = src;
    char *q = dst;
    int len = strlen(src);
    if(n>len) n = len;
    while(n--) *(q++) = *(p++);
    *(q++)='\0'; /*有必要吗?非常有必要*/
    return dst;
}

/*从字符串的中间截取n个字符*/
char * mid(char *dst,char *src, int n,int m) /*n为长度,m为位置*/
{
    char *p = src;
    char *q = dst;
    int len = strlen(src);
    if(n>len) n = len-m;    /*从第m个到最后*/
    if(m<0) m=0;    /*从第一个開始*/
    if(m>len) return NULL;
    p += m;
    while(n--) *(q++) = *(p++);
    *(q++)='\0'; /*有必要吗?非常有必要*/
    return dst;
}

/*从字符串的右边截取n个字符*/
char * right(char *dst,char *src, int n)
{
    char *p = src;
    char *q = dst;
    int len = strlen(src);
    if(n>len) n = len;
    p += (len-n);   /*从右边第n个字符開始。到0结束,非常巧啊*/
    while(*(q++) = *(p++));
    return dst;
}
main()
{
    char mb[5];
    int i;
    for(i=0;i<5;i++)
    {
        if(strcmp(left(mb,ab[i].name,2),"张")==0)
        ab[i].age++;
        else if(strcmp(left(mb,ab[i].name,2),"李")==0)
        ab[i].age+=2;
        printf("%s,%d\n",ab[i].name,ab[i].age);
    } 
    getchar();
 }

 

标签:src,int,截取,len,C语言,char,字符串,dst
From: https://www.cnblogs.com/xkdn/p/16974297.html

相关文章

  • 攻防世界-easyphp(前导数字字符串、数字字符串、数字弱类型比较)
    一道php代码审计题,利用了字符与数字弱类型比较的漏洞。 一、基础知识数字字符串形如数字形式的字符串叫做数字字符串,例如:'123456','1e56112'(科学计数法),'1......
  • matlab_fft函数c语言实现
    前言最近工作移植PPG算法,将MATLAB上代码移植到嵌入式设备上去。因为心率算法利用FFT实现会较为简单,所以又重新了解了一下大学里学的FFT,并写了C语言实现MATLAB的FFT接口的......
  • C语言:简单的字符截取与比较
    #include<stdio.h>structdata{charname[7];intage;}ab[5]={"张三",10,"李四",11,"张五",12,"李六",13,"陈七",14};//编程将数组中所有姓张的年龄增加1,姓李的增......
  • python 字典形式的字符串转字典
    >>>importast>>>aar='{"ab":1,"ac":2,"ad":3}'>>>aaxx=ast.literal_eval(aar)>>>aaxx{'ab':1,'ac':2,'ad':3}>>>>>>aar=......
  • C语言 图的遍历(广度优先和深度优先、邻接矩阵)
    #define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>/*--------辅助广度优先遍历用的空闲单元法循环队列-----------*/#defineMaxQueuenNum20typ......
  • C语言分支语句和循环语句
    一、分支语句1.if语句//用法if(表达式){语句}()中的表达式为真,执行语句,如果只有1条语句,可以不加{}。 2.if-else语句//用法if(表达式){语句1}else{语句2}()中表达式......
  • C语言--函数
    什么是函数?函数是一组一起执行一个任务的语句。每个C程序都至少有一个函数,即主函数 main()。函数声明:告诉编译器函数的名称、返回类型和参数函数定义:提供了函数的实......
  • 【Shell脚本(一) -- 开始、变量、字符串、数组】
    一、什么是ShellShell编程就是对一堆Linux命令的逻辑化处理应用例:举个简单的例子,我们做pythonweb开发的,在以前,如果要在本地将程序打包,然后部署到远程服务器(抛开现在的ci,原......
  • 【Java】【LeetCode】字符串操作
    将空格替换成"%20"Stringa=s.replace("","%20");//注意replace不是直接在s上做修改,而是返回了一个字符串StringBuilderStringBuildersb=newStringBuilder("1234a......
  • c语言表达式求值和操作符属性
    一、表达式求值表达式求值顺序一部分是由操作符的优先级和结合性决定。同样,有些表达式的操作数在求值的过程中可能需要转化为其他类型1.隐式类型转换表达式中的字符和短整型......