搜索
查看: 884|回复: 14
打印 上一主题 下一主题

天啊!这是什么东西?

[复制链接]
跳转到指定楼层
楼主
发表于 2015-10-5 19:09:01 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
为了实现在字符串中插入字符,
写了一个子函数
完整代码:
[mw_shl_code=c,true]#include <stdio.h>
#include <string.h>
void X(char ch[100],char c,int t)//c传递要插入的字符,t传递插入的位置,在指定位置前插入字符
{
        int len=strlen(ch);
    int i;
    for(i=len;i>=t+1;i--)
    {
                ch=ch[i-1];
    }
    ch[t]=c;
}
int main()
{
        char ch[100],c;
    int t;
    printf("请输入一串字符\n");
    gets(ch);
    printf("请输入要插入的字符\n");
    scanf("%c",&c);
    printf("请输入要插入的位置\n");
    scanf("%d",&t);
    X(ch,c,t);
    puts(ch);
        system("pause");
        return 0;
}
[/mw_shl_code]
看截图吧,什么情况!
怎么会这样?

天啊.PNG (12.54 KB, 下载次数: 20)

天啊.PNG

最佳答案

查看完整内容

[mw_shl_code=c,true]#include #include void X(char ch[100],char c,int t)//c传递要插入的字符,t传递插入的位置,在指定位置前插入字符 { int len=strlen(ch); int i; for(i=len;i>=t+1;i--) { ch=ch; } ch[t]=c; ch[len+1]='\0'; ///添加这行代码 } int main() { char ch[100],c; int t; printf("请输入一串字符\n"); gets(ch); printf("请输入 ...
沙发
发表于 2015-10-5 19:09:02 | 只看该作者
[mw_shl_code=c,true]#include <stdio.h>
#include <string.h>
void X(char ch[100],char c,int t)//c传递要插入的字符,t传递插入的位置,在指定位置前插入字符
{
    int len=strlen(ch);
    int i;
    for(i=len;i>=t+1;i--)
    {
        ch=ch[i-1];
    }
    ch[t]=c;
    ch[len+1]='\0'; ///添加这行代码
}
int main()
{
    char ch[100],c;
    int t;
    printf("请输入一串字符\n");
    gets(ch);
    printf("请输入要插入的字符\n");
    scanf("%c",&c);
    printf("请输入要插入的位置\n");
    scanf("%d",&t);
    X(ch,c,t);
    puts(ch);
    system("pause");
    return 0;
}
[/mw_shl_code]
板凳
 楼主| 发表于 2015-10-5 19:10:56 | 只看该作者
后面的乱码显示了出来,说明包含在字符串中了,怎样去掉这些乱码
地板
发表于 2015-10-5 23:21:07 | 只看该作者
说明,字符数组要以'\0'结尾,这样操作系统就知道'\0'以前的字符都是有效字符

点评

对的  发表于 2015-10-6 22:40
5#
发表于 2015-10-6 21:48:51 | 只看该作者
插入时有问题,使得ASCLL码跳至中文
6#
发表于 2015-10-6 21:54:57 | 只看该作者
mingyong 发表于 2015-10-5 23:21
说明,字符数组要以'\0'结尾,这样操作系统就知道'\0'以前的字符都是有效字符

字符串自己会加的好不好,您真逗
7#
发表于 2015-10-6 21:55:19 | 只看该作者
经过检测,是puts输出的问题
8#
发表于 2015-10-6 21:55:29 | 只看该作者
换成printf就ok了
9#
 楼主| 发表于 2015-10-6 22:39:54 | 只看该作者
zhuzhu81998(3) 发表于 2015-10-6 21:54
字符串自己会加的好不好,您真逗

ta对的,我测试了一下,没有乱码了
10#
发表于 2015-10-6 22:59:53 | 只看该作者
福华 发表于 2015-10-6 22:39
ta对的,我测试了一下,没有乱码了

我这儿用printf输出也没了,还有如果每次用字符串都要加人工加\0得变成什么样子?我用字符串从来没手动加过
11#
发表于 2015-10-6 23:00:05 | 只看该作者
福华 发表于 2015-10-6 22:39
ta对的,我测试了一下,没有乱码了

声明是应该自己带了
12#
 楼主| 发表于 2015-10-9 13:46:58 | 只看该作者
zhuzhu81998(3) 发表于 2015-10-6 22:59
我这儿用printf输出也没了,还有如果每次用字符串都要加人工加\0得变成什么样子?我用字符串从来没手动加 ...

zhuzhu81998你被封几个号了
13#
发表于 2015-10-9 19:26:06 | 只看该作者
福华 发表于 2015-10-9 13:46
zhuzhu81998你被封几个号了

呵呵,俩。
14#
发表于 2015-10-31 18:20:28 | 只看该作者
不会自己加,局部变量不会自己初始化的……
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表