博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
纯c中char*[]的处理
阅读量:4213 次
发布时间:2019-05-26

本文共 1388 字,大约阅读时间需要 4 分钟。

要明确的几点:

  1.以下是不行的

#include"stdio.h"

#include<Windows.h>
int main()
{
    char * a=0;
    scanf("%s",a);
    printf("%s",a);
    system("pause");
    return 0;
}

2.char a[100]={0};

   char *b[100]={0};

  此时a的类型是指向char 的指针(即:char *型),b的类型是指向char * 的指针(即使:char ** 型)

,且他们是常量指针(无法移动和修改)

3.检测字符串数组中是否有某个字符,若有,返回true,否则返回false

算法1:bool find_char(char **strings,char value)

{
    char * string=0;
    while((string=*strings++)!=NULL)
    {
        while(*string++!='\0')
        {
            if(*string==value)
            return true;
        }        
    }
    return false;
}

在主函数中:

#include<stdio.h>

#include<ctype.h>
#include<string.h>
#define MAXROW 100
#define MAXCOL 100
:bool find_char(char **strings,char value);
int main1()
{
    char* strings[MAXROW]={0};
    char string[MAXCOL]={0};
    //char** strings_str=strings;
    //char * string_str=string;
    size_t count=0;
    char a;
    printf_s("请输入字符串,以0结束\n");
    scanf("%s",string);
    while (string[0]!='0')
    {
    strings[count++]=string;
    scanf("%s",string);
    }
    strings[count]=NULL;
    /*strings[0]="sunxiaowu";
    strings[1]="xiamuyourenzhang";
    strings[2]="wokanzheni";*/
    //printf("为啥子下面一句话输入不进去");
    bool flag=find_char(strings,'e');
    (flag==true)?printf("exist"):printf("not exist");
    return 0;
}
结果有错:

   经过调试发现,字符串数组中存储的字符串里,字符串都是一样的?为什么?

 经过本人的不断查看,终于发现问题之处在于:

strings[count++]=string;这句

设置一个临时变量即可:

改为:char * tmp=new char(strlen(string)+1);

            strcpy(tmp,string);

strings[count++]=string;即可

或者直接初始化来测试:

char * strings[100]={"sunxiaowu","wokanzheni","niquekanzhefngjming"};

算法2:

转载地址:http://ujumi.baihongyu.com/

你可能感兴趣的文章
框架一
查看>>
Oracle-内存管理解读
查看>>
Oracle-PFILE和SPFILE解读
查看>>
leetcode 13: Roman to Integer
查看>>
a标签中调用js方法
查看>>
js函数中传入的event参数
查看>>
[hive]优化策略
查看>>
c++14现代内存管理
查看>>
右值引用,move语义和完美转发
查看>>
c++使用宏检测类是否包含某个函数或者变量属性
查看>>
CSS之Multi-columns的column-gap和column-rule
查看>>
CSS之Multi-columns的跨列
查看>>
CSS之浮动(一)
查看>>
CSS之浮动(二)
查看>>
记腾讯互娱网站布局(1)
查看>>
记腾讯互娱网站布局(2)
查看>>
记腾讯互娱网站布局(3)
查看>>
大小不固定的图片和多行文字的垂直水平居中
查看>>
display:table-cell的集中应用
查看>>
display:table-cell自适应布局下连续单词字符换行
查看>>