‘壹’ c语言输入一个字符串,如何在指定位置插入一个字符
也许用链表比较好实现,下面是用数组实现的程序:
#include<stdio.h>
#include<string.h>
main()
{ int i,j,k,m,n;
char a[100],b[100],c;
gets(a);
gets(b);
c=getchar();
m=strlen(a);
for(i=0;i<m;i++)
{if(a[i]==c)<br/> break;<br/> }
if(i>=m)
{printf("出错!
");<br/> return;<br/> }
n=strlen(b);
k=m;
for(j=m+n;j>i;j--,k--)
a[j]=a[k];
for(j=i,k=0;j<n+i;j++,k++)
a[j]=b[k];
printf("%s
",a);
}
‘贰’ C语言中,如何在一字符串中插入字符
c[5]只有5个空间无法完全容纳字符串"hello",因为这个字符串需要占用6个字符位置。
所谓自动加'\0'的问题是:你写在双引号中的,编译程序会认为是字符串,会自动为你添加上一个字符串结尾符号0,而不是运行时添加的。
如果你用debug方式运行程序,调试环境自动会把你开设的char
a[5];进行初始化0的工作,这时你再将第1位初始化时,后面的0仍存在就好象字符串结尾已经存在了。如果非debug运行则没有这个初始化工作。
如果你用字符方式初始化应当写:char
c[6]={
'h','e','l','l','o','\0'
};
希望对你能有所帮助。
‘叁’ C语言 如何实现在字符串的内部增加字符串。
#include "stdafx.h"
#include "conio.h"
char *myfun(char *strA, char *strB, char strC)//strA用户数据,strB返回数据, strC插入字符
{
int m = 0;
if (strA == NULL)
return NULL;
int n = strlen(strA);
for (int i=0; i<n; i++)
{
strB[m]=strA[i];
if (strA[i]>= 0x30 && strA[i]<= 0x39 )
{
strB[m+1] = strC;
m += 1;
}
m += 1;
}
strB[m] = '\0';
return strB;
}
main()
{
char p[] = "2m1f3d2de4wer5";
int k = strlen(p);
char *buff = (char *)malloc(k*2+1);
char *p1 = myfun(p, buff, 's');
printf("%s\n", p1);
free(buff);
}
‘肆’ c语言中怎么输入字符串
char a[1024];
for(int i = 0; i < 1024; i ++ )
{
scanf("%c",&a[i]); //输入字符串到一个数组中
if(a[i] = '\n'); //当你安回车键时,表示输入的字符串借宿用break 跳出,循环
{
break;
}
}
‘伍’ 用C语言编写一个在字符串中插入一个字符的程序
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#defineN100
voidInsert(char*s);
intmain()
{
charstr[N];
printf("Inputastring:");
gets(str);
Insert(str);
printf("Insertresults:%s ",str);
return0;
}
voidInsert(char*s)
{
charstr[N];
char*t=str;
strcpy(t,s);
for(;*t!='