首页 > 其他分享 >变量乱变问题(求大佬指点!!!)

变量乱变问题(求大佬指点!!!)

时间:2023-04-27 21:33:23浏览次数:26  
标签:head 乱变 printf 指点 char tail str str2 大佬

环境:AMD,win10_x64,cygwin64,vscode,code runner

与预期不符的代码:

#include<string.h>
#include"stdio.h"
typedef char ElemType;
typedef struct BiTNode
{
    ElemType data;
    struct BTNode *lchild;
    struct BTNode *rchild;
} BTNode, *BiTree;
BTNode*CreateBiTree(char *str)
{
    // char str[]="A(B(D,E(H(J,E(L,M(,N)))),C(F,G(,I)))",arr[]="";
    // const char*str=b;
    // char*str=b;
    char*str2;
    int head=strchr(str,'(')-str+1,tail;
    // int head=1,tail=35;
    // for (int i = (int)(strchr(str2,'(')-str2);; i--,str2--)
    // printf("strlen(str)=%d\n",strlen(str));
    str2=str+strlen(str)-1;
    for (int i = strlen(str)-1;; i--,str2--)
    {
        // printf("i=%d,*str2=%c\n",i,*str2);
        if(*str2==')'){
            tail=i;
            printf("tail=%d,i=%d\n",tail,i);
            break;
        }
    }
    // printf("%d(tail)-%d(head)+1-2=%d\n",tail,head,tail-head+1-2);
    str2=str+head;
    char arr[]="";
    char*str3=arr;
    for (int i = 0; i < tail-head+1; i++,str2++,str3++){
        *str3=*str2;
        printf("i=%d, tail=%d, head=%d\n",i,tail,head);
        // printf("%c ",*str3);
    }
    printf("tail=%d head=%d\n",tail,head);
    *str3='\0';
    str3=arr;
    printf("\n%s\n",str3);
    return 0;
}

int main()
{
    BTNode *b = NULL, *p, *lchild = NULL, *rchild = NULL;
    b=CreateBiTree("A(B(D,E(H(J,E(L,M(,N)))),C(F,G(,I)))");
    return 0;
}
View Code

运行结果:

 修改符合预期的代码:

#include<string.h>
#include"stdio.h"
typedef char ElemType;
typedef struct BiTNode
{
    ElemType data;
    struct BTNode *lchild;
    struct BTNode *rchild;
} BTNode, *BiTree;

int main()
{
    BTNode *b = NULL, *p, *lchild = NULL, *rchild = NULL;
    // b=CreateBiTree("A(B(D,E(H(J,E(L,M(,N)))),C(F,G(,I)))");
    char args[]="A(B(D,E(H(J,E(L,M(,N)))),C(F,G(,I)))";
    char*str=args;
    char*str2;
    int head=strchr(str,'(')-str+1,tail;
    // int head=1,tail=35;
    // for (int i = (int)(strchr(str2,'(')-str2);; i--,str2--)
    // printf("strlen(str)=%d\n",strlen(str));
    str2=str+strlen(str)-1;
    for (int i = strlen(str)-1;; i--,str2--)
    {
        // printf("i=%d,*str2=%c\n",i,*str2);
        if(*str2==')'){
            tail=i;
            printf("tail=%d,i=%d\n",tail,i);
            break;
        }
    }
    // printf("%d(tail)-%d(head)+1-2=%d\n",tail,head,tail-head+1-2);
    str2=str+head;
    char arr[]="";
    char*str3=arr;
    for (int i = 0; i < tail-head+1; i++,str2++,str3++){
        *str3=*str2;
        printf("i=%d, tail=%d, head=%d\n",i,tail,head);
        // printf("%c ",*str3);
    }
    printf("tail=%d head=%d\n",tail,head);
    *str3='\0';
    str3=arr;
    printf("\n%s\n",str3);
    return 0;
}
View Code

 

标签:head,乱变,printf,指点,char,tail,str,str2,大佬
From: https://www.cnblogs.com/xuweihui/p/17360278.html

相关文章

  • 服务器出现了一个新软件,一帮大佬吵起来了!
    一天深夜,加班的程序员都已经下班,而服务器却热闹了起来。 “听说了吗?这家公司即将有一个大项目要来!”,tomcat神秘的说到。隔壁的Nginx闻声说到:“什么大项目?”“说是什么大数据,要实现10亿级数据秒级检索!”“啥,10亿,秒级?”“是啊,这次不知道又是哪个数据库要受苦了”,tomcat笑着......
  • 大佬们帮我看看怎么输出到Excel中是空的?
    大家好,我是皮皮。一、前言前几天在Python铂金交流群【JethroShen】问了一个Python自动化处理的问题,这里拿出来给大家分享下。代码如下:importpandasaspdimportchardet#读取题库文件withopen('未命名.txt','rb')asf:encoding=chardet.detect(f.read())['encodin......
  • 貌似遇到了一个docker 2014年以来就有的大神级大坑,大佬们怎么解决?
    版本centos 3.10.0-1160.53.1.el7.x86_64,华为云服务器。pr1921:48:39k8s-master01kernel:docker0:port1(veth7a384b6)enteredblockingstateApr1921:48:39k8s-master01kernel:docker0:port1(veth7a384b6)entereddisabledstateApr1921:48:39k8s-master......
  • 大佬们,这个导包怎么写呀?本地执行可以,Linux执行报错
    大家好,我是皮皮。一、前言前几天在Python最强白银交流群【喜靓仔】问了一个Python路径处理的问题,这里拿出来给大家分享下。下图是他的代码:二、实现过程这里【小王子】给了一个答案,如下所示:代码如下:fromsysimportpathpath.insert(1,'../app/')importtesttest.test()顺利地......
  • 大佬们,matplotlib安装不上,怎么破?
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【Feng】问了一个Python基础的问题,这里拿出来给大家分享下。他遇到的问题是新版本的Python中能安装上matplotlib,但是降低版本缺安装不上matplotlib,而他现在就想在低版本上跑这个matplotlib代码,必须要降低版本。其实思路还是有......
  • 有大佬知道这是为什么嘛?路径和文件名都没错呀
    大家好,我是皮皮。一、前言前几天在Python白银交流群【笑】问了一个Python文件处理的问题,这里拿出来给大家分享下。二、实现过程这里【空翼】指出是路径错了的问题,其实报错也非常明显了。只需要把前面那个topmine_src去掉即可。顺利地解决了粉丝的问题。三、总结大家好,我是皮皮。这......
  • 一个前端大佬的十年回顾 | 漫画前端的前世今生
    作者:京东科技胡骏引言岁月如梭,十载流年前端技术,蓬勃向前HTML,CSS,JavaScript演绎出璀璨夺目的技术画卷回到十年前,前端技术就像一名戴着厚重眼镜的书呆子,总是小心翼翼,被各种各样的浏览器兼容性问题欺负(就像在小学被欺负一样)。但随着时间的推移,这个书呆子开始锻炼,变得越来越......
  • 0002 嵌入式开发带你从小白到大佬系列之——Linux文件系统、常用文件操作命令(一)及用户
    1、熟悉Linux的文件系统结构Linux的文件系统结构其实是一个树形的分层组织结构,如下图:Linux系统目录结构及目录路径:1.1、文件系统层次结构标准Linux是开源的操作系统,各个Linux发行机构都可以按照自己的需求对Linux系统的文件系统进行相应的裁剪,所以各个Linux发行版本的目录结......
  • Florr 从新手到大佬
    Florr从新手到大佬新手上路首先在这里,你会遇到一些简单的教程。按照教程完成,也可以参考链接里的内容。装备分为一下几种:Common 颜色:#7EEF6DUnuaual颜色:#FFE65DRare颜色:#4D52E3Epic颜色:#861FDELegendary颜色:#DE1F1FMythic颜色:#1FDBDEUltra颜色:#FF2B75Super颜色:#2BFFA3......
  • 大佬分享测试底层逻辑
    https://mp.weixin.qq.com/s/W-6b1CAMK5f7zNQTiW5UOg  我认为测试人员不应该成为PRD的搬运工,高级测试工程师也不应该只是测试工具得开发者;测试人员,最基本的测试基础......