c语言输入一个字符串,如何在指定位置插入一个字符?

c语言输入一个字符串,如何在指定位置插入一个字符?,第1张

也许用链表比较好实现,下派悄面是用数组实现的程序:

#include<stdio.h>

#include<string.h>

main()

{inti,j,k,m,n

chara[100],b[100],c

gets(a)

gets(b)

c=getchar()

m=strlen(a)

for(i=0i<mi++)

{if(a[i]==c)<br/>break<br/>}

if(i>=m)

{printf("出错!\n")<br/>return<br/>}

n=strlen(b)

k=m

for(j=m+nj>ij--,k--)

a[j]=a[k]

for(j=i,k=0j<n+ij++,k++)

a[j]=b[k]

printf("%s\n",a)

}

设计过程:

定义两个字符埋羡歼串s2,s2,字符k

输入两个字符串s1、s2和s1中任意字符k

先遍历s1找到指定字符k,记录下当前位置

从k字符开始,按s2的长度后移其余的数据

将s2拷贝到k所在的位置

输出s1。

代码如下:

#include <stdio.h>

#include <string.h>

void main()

{

char s1[100]

char s2[20]

char k

int i,pos,len

printf("input s1: ")scanf("%s", s1 )

printf("input s2: ")scanf("%s", s2 弯冲)

getchar()//滤掉回车符

printf("input k: ")scanf("%c", &k )

for( i=0s1[i]i++ )

if ( s1[i]==k )

break

}

pos=i //记录下待插入的位置

len=strlen(s2) //得到s2长度

for( i=strlen(s1)i>=posi-- ) //后移字符串

{

s1[i+len]=s1[i]

}

strncpy( &s1[pos], s2, len ) //插入数据

printf("%s\n", s1 ) //输出字符串

}

#include <stdio.h> 

#include <string.h> 

#define N 100 

void insertChar(char s[], char c)

    int n,i,j 

    for (i = 0 s[i] != '\0' i++ )

    {

        if (s[i] >= '0' && s[i] <='9') 

        { 

            n = strlen(s)

            s[n+1] = '\0'

            for(j= n j>i+1 j--) 

            {

                s[j] = s[j -1]

            }      

            s[i+1] = c 

        } 

    } 

int main(int argc, char *argv[])

{  

    char str[N] 

    gets(str) 

    insertChar(str,getchar()) 

    puts(str) 

    return 0 

}

我又做了下修改,代码如下

#include <stdio.h> 

#include <string.h> 

#define N 100 

void insertChar(char s[], char c)

    int n,i,j 

    for (i = 0 s[i] != '\0' i++ )

    冲桥{

        if (s[i] >= '0' && s[i] <='9') 

        { 

     侍判帆       n = strlen(s)//计算字符串长度,不包括'\0'

            for(j= n j>i j--) 

            {

                s[j+1] = s[j]//以s[i]为界限,将s[i+1]至结尾后移

 老雹           }      

            s[i+1] = c 

        } 

    } 

 

int main(int argc, char *argv[])

{  

    char str[N] 

    gets(str)//非常危险的函数,从键盘输入一字符串,以回车结束,并将回车替换为'\0'

    insertChar(str,getchar()) 

    puts(str) 

    return 0 

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12454431.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存