爱学习520 发表于 2020-6-30 19:19:17

简单的去数组奇数下标字符,不知道这个为什么多一个0?大佬help

本帖最后由 爱学习520 于 2020-6-30 19:23 编辑

为什么测试输入:abcdefgh正确;输入:abcdefg ,则有一个0?如黑色测试图片

此程序就是简单的把奇数的字符删除,最后输出该数组的偶数字符串

/*
* 将字符串中下标为奇数的字符删除 使用void new(char str [])剩余的字符形成新串   
*/
#include<stdio.h>
//函数声明
void New(char str []);       //去除奇数下标字符
void Strstoc(char str []);   // 大写变小写

main()
{
        char a;       
        printf("========================================\n");
       
        //输入字符串
        printf("请输入一个字符串:\n");
        scanf("%s",a);
       
        printf("========================================\n");
        printf("原字符串为:%s\n",a);
       
        New(a);
       
        printf("========================================\n");
        printf("现字符串为:%s\n",a);
}

//此处形参str[]并不被分配栈内存空间
//此处编译char str[]等价于char *str
void New(char str [])
{
        int i,j;               
    for(i=0,j=0;str!='\0';i=i+2)
                   {                                  
             str=str;       
             str[++j]='\0';
           }          
}
输入:abcdefg 后面会有一个0,这是为什么啊



sunrise085 发表于 2020-6-30 20:18:09

程序没看出问题来
我这里运行也没问题。。。
不知道什么原因。。

爱学习520 发表于 2020-6-30 20:28:25

sunrise085 发表于 2020-6-30 20:18
程序没看出问题来
我这里运行也没问题。。。
不知道什么原因。。

你的有0吗 测试abcdefg

sunrise085 发表于 2020-6-30 20:32:30

爱学习520 发表于 2020-6-30 20:28
你的有0吗 测试abcdefg

没有0

永恒的蓝色梦想 发表于 2020-6-30 20:41:37

c.runoob.com 测试结果:========================================
请输入一个字符串:
========================================
原字符串为:abcdefg
========================================
现字符串为:aceg`@
页: [1]
查看完整版本: 简单的去数组奇数下标字符,不知道这个为什么多一个0?大佬help