文档章节

C/C++拾遗(二)C语言实现Key-Value键值对查找

她吃西红柿
 她吃西红柿
发布于 2017/07/18 16:47
字数 176
阅读 531
收藏 0
//去掉空格
void noSpace (char *strIn, char *strOutn){

    char *start, *end, *temp;
    
    temp = strIn;
    
    while (*temp == ' ') {
        temp ++;
    }
    start =temp;
    
    temp = strIn + strlen(strIn) - 1;
    
    while (*temp == ' ') {
        --temp;
    }
    end = temp;
    
    for (strIn = start; strIn <= end; ) {
        
        *strOutn++ = *strIn++;
    }
    
    *strOutn = '\0';

}
void getvalueForKey(char *keyValue, char *key, char *value){
    //
    char *p = keyValue;
    //判断是否包含key
    p = strstr(p, key);
    if (p == NULL) {
        printf("没有对应的key");
        
        return;
    }
    
    //指针指向key之后
    p = p + strlen(key);
    noSpace(p, value);
    //定位"="位置
    
    p = strstr(p, "=");
    if (p == NULL) {
        printf("没有=号");
        return;
    }
    //指针指向等号之后
    p = p + strlen("=");
    noSpace(p, value);
    //
    p = strstr(value, "=");
    if(p != NULL){
        printf("多余的=\n");
        return;
    }
    p = value;
    noSpace(p, value);
    
    
    
}
int main(int argc, const char * argv[]) {
   
    char *map = " key1 = value123 ";
    char *key = "key1";
    char value[40];
    
    getvalueForKey(map, key, value);
    printf("%s\n",value);
    
    
    return 0;
}

© 著作权归作者所有

她吃西红柿
粉丝 43
博文 52
码字总数 25812
作品 0
杭州
iOS工程师
私信 提问
《数据结构与算法系列》合集整理

《数据结构与算法系列》合集整理 整理来自博客园skywang12345,以下摘自作者介绍: “最近抽空整理了"数据结构和算法"的相关文章。在整理过程中,对于每种数据结构和算法分别给出"C"、"C++"...

kaixin_code
2018/12/01
152
0
C语言/C++编程学习:栈的代码实现之数组方案

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你学知识
2018/06/14
12
0
C语言/C++编程学习强势之处的体现

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界
2018/05/12
0
0
key value value是字符串时,c语音客户端,不需要序列化吗?

不像java那样有此开销。本人熟悉java,但对c/c++了解不多。c语言结构体序列化很容易么? 有高手 新浪 田琪infoq上说 c# 用key-value 也要序列化。c#和C++还不一样吗?...

王海龙
2012/04/21
360
0
Redis及其C库Hiredis的使用和封装

首先,Redis是一个开源的使用C语言编写、开源、支持网络、可基于内存亦可持久化的日志型、高性能的Key-Value数据库,并提供多种语言的API。一般开发者对Redis应该都有所耳闻,而Hiredis是一个...

Cloudox_
06/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

oracle ORA-39700: database must be opened with UPGRADE option

ORA-01092: ORACLE instance terminated. Disconnection forced ORA-00704: bootstrap process failure ORA-39700: database must be opened with UPGRADE option 进程 ID: 3650 会话 ID: 29......

Tank_shu
今天
1
0
分布式协调服务zookeeper

ps.本文为《从Paxos到Zookeeper 分布式一致性原理与实践》笔记之一 ZooKeeper ZooKeeper曾是Apache Hadoop的一个子项目,是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它...

ls_cherish
今天
4
0
聊聊DubboDefaultPropertiesEnvironmentPostProcessor

序 本文主要研究一下DubboDefaultPropertiesEnvironmentPostProcessor DubboDefaultPropertiesEnvironmentPostProcessor dubbo-spring-boot-project-2.7.3/dubbo-spring-boot-compatible/au......

go4it
昨天
1
0
redis 学习2

网站 启动 服务端 启动redis 服务端 在redis 安装目录下 src 里面 ./redis-server & 可以指定 配置文件或者端口 客户端 在 redis 的安装目录里面的 src 里面 ./redis-cli 可以指定 指定 连接...

之渊
昨天
2
0
Spring boot 静态资源访问

0. 两个配置 spring.mvc.static-path-patternspring.resources.static-locations 1. application中需要先行的两个配置项 1.1 spring.mvc.static-path-pattern 这个配置项是告诉springboo......

moon888
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部