當前位置:首頁 » 編程語言 » c語言怎麼添加字元
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言怎麼添加字元

發布時間: 2023-03-16 05:00:31

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<stdio.h>
#include<string.h>
#include<stdlib.h>
#defineMAX_LAN1024

char*change(constchar*str,charch)
{
inti,j,k,len;
char*p=calloc(1,sizeof(MAX_LAN));//動態內存分配並初始化為0
strcpy(p,str);
len=strlen(p);
for(i=0;i<len;i++)
{
if(p[i]==ch)
{
k=i+1;//待插入的位置
for(j=len-1;j>i;j--)
p[j+1]=p[j];
p[k]=ch;
len++;
i++;
}
}
p[len]='';
returnp;
}
intmain()
{
charstr[MAX_LAN],ch,*p;
scanf("%s",str);
fflush(stdin);
ch=getchar();
printf("Sourcestring:%s ",str);
p=change(str,ch);
printf("Newstring:%s ",p);
free(p);//釋放動態內存空間
return0;
}

//示例運行結果
F:c_work>a.exe
aaa
a
Sourcestring:aaa
Newstring:aaaaaa

F:c_work>a.exe
abcba
c
Sourcestring:abcba
Newstring:abccba

⑶ 怎樣在空格後面添加字元c語言

方法一 使用stdio函數庫提供的char函數,這里我們胡褲在MSDN離線版上學習一下其用法 可以看到,gets()用於從標准輸入流讀入一個整行(以歲做族』\n』或EOF)結束,寫入ptr指乎弊向的字元數組,並返回這個指針;出錯或遇到文件結束時則返回NULL。 行末的』\n』從流中取出,但不寫入數組。 gets()不檢查被寫入的數組大小。 所以我們可以很容易寫出如下代碼: #include<stdio.h>intmain(){charstr[25]={0};gets(str);printf("%s\n",str);return0;} 實現後: 方法二 這里使用一個scanf函數提供的「%[]」格式來輸入,這個格式可以讓我們進行多字元的輸入,同時決定輸入結束的字元,只需要使用**^+我們需要停止的字元**下面為大家實際操作一波: #include<stdio.h>intmain(){charstr[25]={0};scanf("%[^\n]",str);printf("%s\n",str);return0;} 實現後: 我們甚至可以憑借%[ ^EOF ]來控制字元串的持續輸入 。

⑷ C語言從字元串的指定位置中插入指定字元,要簡單易懂


#include<stdio.h>
#include<string.h>
intmain(void)
{
chara[30];
charb,c;
char*pt;
char*i;
printf("請輸入基本字元串:");
scanf("%s",&a);
getchar();
while(1)
{
pt=NULL;
while(pt==NULL)
{
printf("請輸入插入位置左側字元:");
scanf("%c",&b);
getchar();
pt=strchr(a,b);
}
printf("請輸入將插入字元:");
scanf("%c",&c);
getchar();
for(i=a+strlen(a)+1;i>pt;i--)
{
if(i==pt+1)
{
a[i-a]=c;
break;
}
a[i-a]=a[i-a-1];
}
printf("結果:%s ",a);
}
while(1);
}

⑸ c語言如何輸入任意個字元

在 C 語言中,可以使用以差族下函數來輸入任意個字元:

  • fgets 函數:該函數可以從標准輸入流 stdin 中讀取任意個字元,直到讀到換行符或文件結束標志為止。例如:

  • Copy codechar str[100];if (fgets(str, 100, stdin) == NULL) { // 讀取失敗} else { // 讀取成功}

  • getchar 函數:該函數可以從標准輸入流 stdin 中讀取一個字元,並返回讀譽慶岩取到的字元。例如:

  • Copy codechar c;while ((c = getchar()) != EOF) {

  • // 讀取到的字元存儲在 c 中}

  • 在使用 getchar 函數時,可以使用一個循環讀取任意個字元。在循環內部,每次調用 getchar 函數都會從標准輸入流中讀取一個字元,直到遇到文件結束標志 EOF 為止。

    注意,使用 fgets 函數時,需要給出一個字元數組作為參數,用於慶御存儲讀取到的字元。使用 getchar 函數時,則需要定義一個變數來存儲讀取到的字元。

回答不易,望採納謝謝

⑹ C語言字元插入

#include<stdio.h>
#include<string.h>
#defineN100
voidinsertChar(chars[],charc)
{
intn,i,j;
for(i=0;s[i]!='';i++)
{
if(s[i]>='0'&&s[i]<='9')
{
n=strlen(s);
s[n+1]='';
for(j=n;j>i+1;j--)
{
s[j]=s[j-1];
}
s[i+1]=c;
}
}
}

intmain(intargc,char*argv[])
{
charstr[N];
gets(str);
insertChar(str,getchar());
puts(str);
return0;
}

#include<stdio.h>
#include<string.h>
#defineN100
voidinsertChar(chars[],charc)
{
intn,i,j;
for(i=0;s[i]!='';i++)
{
if(s[i]>='0'&&s[i]<='9')
{
n=strlen(s);//計算字元串長度,不包括''
for(j=n;j>i;j--)
{
s[j+1]=s[j];//以s[i]為界限,將s[i+1]至結尾後移
}
s[i+1]=c;
}
}
}

intmain(intargc,char*argv[])
{
charstr[N];
gets(str);//非常危險的函數,從鍵盤輸入一字元串,以回車結束,並將回車替換為''
insertChar(str,getchar());
puts(str);
return0;
}

⑺ C語言怎樣快速在字元串的指定位置插入字元

用串S拷貝出另一個串T,對串T從頭至尾掃描,對非數字字元原樣寫入串S,對於數字字元先寫一個$符號再寫該數字字元,最後,在S串尾加結束標志。使用此方法是犧牲空間,贏得時間。

#include<stdio.h>
intfun(char*s)
{
chart[80];
inti,j;
for(i=0;s[i];i++)/*將串s拷貝至串t*/
t[i]=s[i];
t[i]='';
for(i=0,j=0;t[i];i++)
/*對於數字字元先寫一個$符號,再寫該數字字元*/
if(t[i]>='0'&&t[i]<='9')
{
s[j++]='$';
s[j++]=t[i];
}
/*對於非數字字元原樣寫入串s*/
else
s[j++]=t[i];
s[j]='';/*在串s結尾加結束標志*/
return0;
}
intmain()
{
chars[80];
printf("Enterastring:");
scanf("%s",s);/*輸入字元串*/
fun(s);
printf("Theresult:%s ",s);/*輸出結果*/
return0;
}

⑻ 用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!='';s++,t++)

{

*s=*t;

s++;

*s='';

}

*s='';/*在字元串s的末尾添加字元串結束標志*/

}

(8)c語言怎麼添加字元擴展閱讀

C語言通過定義一個char類型的二維數組實現,通過二維數組的行索引可得到數組中的每個字元串,列的大小限定了每個字元串所能包含的最大字元個數,所以採用這種定義方式時,列的大小必須不能小於數組所有字元串的最大長度。

C語言編程定義一個字元串的數組:

str={

「IloveC.」,

「IloveC++.」,

「IloveJAVA.」,

「IlovePython.」,

「IloveLabVIEW.」

}

⑼ 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語言 如何實現在字元串的內部增加字元串。

#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);

}