方法一:函數入口參數即為要返回的結果
成都創新互聯主營沁縣網站建設的網絡公司,主營網站建設方案,手機APP定制開發,沁縣h5小程序定制開發搭建,沁縣網站營銷推廣歡迎沁縣等地區企業咨詢
void fun(char *in,char *out);
out為你要傳出的字符串,其實對于你的函數內部來說這個out就像它的全局變量(要明白,其實不是,這么說只是為了讓你好理解)。
方法二:函數內使用static修飾局部變量,這樣就可以傳出去了。
在c語言中定義字符串:
C語言中用字符型CHAR來表示存儲字符,沒有C++里面的可以單獨的字符串類型String;
所以C里面使用字符數組和字符指針來實現字符串功能;
C的字符數組只能在定義時一起賦值,以后只能給單個元素一一賦值;
char string0[10];
char string1[]="prison break";
char string2[100]="michael scofield";
1句表示定義個長度為10的字符串,但未賦值,2句表示定義了一個字符數組string1,并進行初始化,使得其長度自動為13(字符串”prison break"中的字符個數加上結尾的'\0'),3句定義了一個有100個元素的字符數組string2,并初始化了17個元素("michael scofield";加上結尾的'\0')。
C語言本身是沒有設置一種類型來定義字符串變量的,字符串的存儲完全依賴于字符數組,但字符數組又不等于是字符串變量。在字符型一維數組存放字符串,并規定以字符'\0'作為字符串結束標志。
程序的大體思路可以是這樣:
str1是原字符串,str2是待插入的字符串,position是待插入的位置,我們可以這樣,用一個指針p_cur指向字符串1 str1中的待插入位置position,另一個指針p_end指向字符串1 str1的尾部,每次插入字符前,把str1中從當前位置開始一直到結束字符全部后移一個位置,空出當前位置,然后把要插入的字符放進這個位置,這樣就完成了一個字符的插入,重復這個步驟,直到str2被完全插入。
代碼如下:
#include stdio.h
#include string.h
void insert_str(char str1[],char str2[],int position)
{
/*
insert_str()函數
功能:將字符串str2插入到str1的position位置處
參數:char str1,char str2 ,int position
返回值:無
*/
int i;
char *p_end,*p_cur,*p;/*p_end指向第一個字符串的尾部,p_cur指向被插入的位置*/
p_end=str1+strlen(str1)-1;
p_cur=str1+position-1;
for(i=0;str2[i]!='\0';i++)
{
for(p=p_end;p=p_cur;p--)
{
*(p+1)=*p;/*從p_cur到p_end的全部元素后移一個位置,此時p_cur指向的位置就空出來了*/
}
*p_cur=str2[i];/*把字符串2中的字符插入空出來的位置*/
p_cur++;/*p_cur下移一個位置*/
p_end++;/*多了一個字符,因此p_end也下移一個位置*/
}
}
void main()
{
char s1[100],s2[20];
int position;
printf("輸入字符串1:\n");
gets(s1);
printf("輸入插入位置:");
do
{
scanf("%d",position);
while(getchar()!='\n');/*這一句可以把輸入position的時候輸入的回車去掉*/
}while(position0||positionstrlen(s1));
printf("輸入字符串2:\n");
gets(s2);
insert_str(s1,s2,position);
printf("字符串被插入后變成:\n");
puts(s1);
}
本文名稱:c語言定義一個字符串函數 c語言,定義字符串
文章URL:http://m.newbst.com/article26/dogpgjg.html
成都網站建設公司_創新互聯,為您提供軟件開發、App開發、網站排名、小程序開發、品牌網站建設、靜態網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯