| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1590 人关注过本帖
标题:希望各位大佬给点思路
只看楼主 加入收藏
Wuhaoran2002
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2020-12-23
结帖率:25%
收藏
已结贴  问题点数:10 回复次数:5 
希望各位大佬给点思路
有一字符串,内有若干个字符,再输入一字符,要求程序在该字符串的首端中插入该字符。要求:分别定义3个外部函数用来输入字符串、插入字符、输出字符串。
搜索更多相关主题的帖子: 字符串 思路 插入 要求 字符 
2021-01-04 20:28
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1509
专家分:9241
注 册:2010-3-16
收藏
得分:10 
从后往前遍历,把各个字符后移1位,最后把这个字符插入到字符串第一个位置上
2021-01-05 10:49
Wuhaoran2002
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2020-12-23
收藏
得分:0 
回复 2楼 apull
#include<stdio.h>
int main()
{
    void input(char c[]);
    void output(char c[]);
    void insert(char c[]);
    char c[10];
    printf("请输入一串字符\n");
    input(c);
    printf("请输入插入的字符\n");
    insert(c);
    output(c);
    return 0;
}
void input(char c[])
{
    int i;
    for(i=0;i<10;i++)
    {scanf("%c",&c[i]);}
}
void output(char c[])
{
    printf("%s",c);
}
void insert(char c[])
{
    int j;
    char b;
    scanf("%c",b);
    for(j=8;j>0;j--)
    {
        c[j+1]=c[j];
    }
    c[0]=b;
}

这样有什么问题吗
2021-01-05 11:10
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1509
专家分:9241
注 册:2010-3-16
收藏
得分:0 

程序代码:

#include <stdio.h>
#include <string.h>

int main()
{
    void input(char *str, size_t n);
    void output(char *str);
    void insert(char *str, const char c);
    char c, str[12]; //多2个位置保存插入字符和\0

    printf("请输入字符串\n");
    input(str, 10);

    printf("请输入插入的字符\n");
    input(&c, 1);

    insert(str, c);
    output(str);

    return 0;
}

void input(char *str, size_t n)
{
    char ch;
    size_t i = 0;
    for (; i < n; i++)
    {
        ch = getchar();
        if (ch == '\n')
            break;
        *(str + i) = ch;
    }
    if (n > 1)
        *(str + i) = '\0';
}

void output(char *str)
{
    printf("%s\n", str);
}

void insert(char *str, const char c)
{
    size_t len = strlen(str) + 1;
    char *p = str + len;

    while (len)
    {
        *p = *(p - 1);
        p--;
        len--;
    }
    *p = c;
}

2021-01-05 12:12
Wuhaoran2002
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2020-12-23
收藏
得分:0 
回复 4楼 apull
谢谢
2021-01-06 18:09
huangbo_031
Rank: 2
等 级:论坛游民
威 望:1
帖 子:3
专家分:18
注 册:2021-1-8
收藏
得分:0 
可以直接用 strcat , 将字符串拼接到字符后面
    const char* s = "abc";
    char c;
    printf("请输入一个字符: ");
    scanf("%c", &c);
    char dst[strlen(s) + 2];
    dst[0] = c;
    dst[1] = 0;
    strcat(dst, s);
    printf("dst: %s\n", dst);
2021-01-08 16:19
快速回复:希望各位大佬给点思路
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.048084 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved