『壹』 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!='