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

指針連接字元串c語言

發布時間: 2022-09-04 02:50:48

c語言指針,函數連接兩個字元串

看錯原型了,重新修改如下,希望可以幫到你。
char*
str_cat(char
*src,
char
*dec,
int
n
)
//
不考慮src的數組溢出
{
char
*s
=
src;
while(*src++)//
找到src的結束位置,就是0結尾的地方
;
//
分號
while(n--){
//
在src的結束位置開始加入dec的字元,直到dec遇到0結束
*src
=
*dec++;
src++;
}
*src
=
0;
return
s;
}

❷ C語言,指針函數實現字元串的復制,連接,比較長度

復制函數strcpy 連接函數strcat 長度strlen 比較大小strcmp 包含在頭文件string.h 可以打開那個頭文件看具體程序段

❸ c語言中,兩個字元指針怎麼進行拼接

先加頭文件#include<string.h>
char a[10]="123";
char b[10]="abc";
strcat(a,b); //連接兩個字元串,連接後的字元串存放在a中,數組a中有足夠空間
printf("%s",a); //輸出連接後的字元串

或:
#include<string.h>
char a[10]="123";
char b[10]="abc";
char c[20];
strcpy(c,a); //把串a復制到有足夠空間的c中
strcat(c,b); //把b連接到c的串尾

❹ 用指針實現字元串連接 C語言C++6.0 急

#include<stdio.h>

char *strcat1(char *s,char *t);

int main(void)

{

char s[20],t[20];

printf("Please input two strings: ");

scanf("%s %s",s,t);

printf("%s ",strcat1(s,t));

return 0;

}

char *strcat1(char *s,char *t)

{

int i,j;

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

;

for(j=0;t[j]!='';i++,j++)

s[i]=t[j];

s[i]='';

return s;


}

❺ C語言用指針法完成字元串連接函數

不懂你要做什麼,如果你是要輸入字元串到數組裡面,那首先把數組初始化成0,即char d[80] = {0};還有就是要輸入輸出字元串的時候格式化字元串要用%s,不要用%c,那是輸入輸出字元的

❻ 指針連接字元串:c語言編一個程序,將兩個字元串連接起來,作為另外一個字元串輸出。 不要用strcat 函數

int _tmain(int argc, _TCHAR* argv[])
{
char a[6]="hello",//這里不要花括符,花括符的形式:a[6]={'h','e',.....};
b[9]="pliceman",
c[14];
int i,j,k;
for(i=0;i<5;i++)c[i]=a[i];//這里已經知道長度為5,何必判斷a[i]是否為結束,
//可以這樣寫:for(i=0;a[i]!='\0';i++)c[i]=a[i];
for(j=0;b[j];j++)c[i+j]=b[j];//b[j]相當於b[j]!='\0',
c[i+j]='\0';k=0;
while(c[k])printf("%c",c[k++]);
return 0;
}

❼ 大一C語言指針和數組,字元串的連接

#include<stdio.h>

char*str_cat(char*str1,char*str2){

//TODO請在此處編寫代碼,完成題目要求

charq[100000];

char*p=q;

while(*str1)*(p++)=*(str1++);

while(*str2)*(p++)=*(str2++);

*p=*str2;

returnq;

}

intmain(){

char*p,*str1="abc",*str2="def";

p=str_cat(str1,str2);

printf("%s",p);return0;}

❽ 用指針實現字元串的連接

#include&lt;stdio.h&gt;

int main(){

char a[20]={0},b[20]={0};

char*q=a,*p=b;

printf("請輸入第一串數字 ");

gets(a);

printf("請輸入第二串數字 ");

gets(b);

printf("第一串數字為 ");

puts(a);

printf("第二串數字為 ");

puts(b);

while(*q!=''){

q++;

}

while(*p!=''){

*q=*p;

q++,p++;

}

printf("連接後的字元為: ");

puts(a);

return 0;

}

(8)指針連接字元串c語言擴展閱讀:

gets()用法:

示例

C:

#include&lt;stdio.h&gt;//這個頭文件包含gets()函數,這個函數在ISO/IEC 9899 2011(C11)標准中被移除

int main(void)

{

char str1[5];//不要char*p,然後gets(p),這是錯誤的,因為p沒有指向有效的內存,它可能指向任何非法地址//地方的未知大小的內存塊,這樣以來,就可能修改了不屬於本程序的內存的內容

gets(str1);

printf("%s ",str1);

return 0;

}

#include&lt;stdio.h&gt;//gets_s()用法

#define CH 20

int main(void)

{

char ch[CH];

printf("請輸入你的名字: ");

gets_s(ch,CH);//這里不能用gets_s(ch);

printf("這是你的名字:%s ",ch);

return 0;

}

C++:

#include&lt;iostream&gt;

#include&lt;cstdio&gt;

using namespace std;

int main()

{

char str[100];

gets(str);

cout&lt;&lt;str&lt;&lt;endl;

return 0;

}

gets()函數用來從標准輸入設備(鍵盤)讀取字元串直到換行符結束,但換行符會被丟棄,然後在末尾添加''字元。其調用格式為:

gets(s);

其中s為字元串變數(字元串數組名或字元串指針)。

gets(s)函數與scanf("%s",s)相似,但不完全相同,使用scanf("%s",s)函數輸入字元串時存在一個問題,就是如果輸入了空格會認為字元串結束,空格後的字元將作為下一個輸入項處理,但gets()函數將接收輸入的整個字元串直到遇到換行為止。

也就是說:gets()函數讀取到 (我們輸入的回車)於是停止讀取,但是它不會把 包含到字元串裡面去。然而,和它配合使用的puts函數,卻在輸出字元串的時候自動換行。

說明編輯

gets(s)函數中的變數s為一字元串指針。如果為單個字元指針,編譯連接不會有錯誤,但運行後內存溢出錯誤。

寬字元版本,當使用unicode寬字元文本時,使用這個函數_getws();

在C11標准中被刪除,可用C標准庫中的fgets代替.

❾ C語言,將一個整數轉化為字元串再與另一字元串連接。(用指針)

錯誤在注釋中
#include<stdio.h>
void
main()
{
void
turn(char
*m,int
t);
void
transform(char
*m,char
*n);
void
stract(char
*p,char
*n);
char
a[20],b[20],c[20],*m,*n,*p;
int
t;
scanf("%s",a);
scanf("%d",&t);
m=b;
n=c;
p=a;
turn(m,t);
transform(m,n);
stract(p,n);
printf("%s",p);
}
void
turn(char
*m,int
t)//*將一個整數轉化為字元,如對123求余得3則*p=3,12再求余則得*(p+1)=2,有1<10則*(p+2)=1,再使*(p+3)='\0'則完成轉換*//
{
int
n;
char
*p=m;
while(t!=0)//是t判斷條件
{
n=t%10;
*p=n+'0';//轉換成字元要+'0'
t=t/10;
if(t<10)
{*(p+1)=t+'0';break;}
p++;
}
*(p+2)='\0';
}
void
transform(char
*m,char
*n)//*使轉換的字元串反序排列*//
{
int
i,j,t;
for(i=0;i<20;i++)
if(*(m+i)=='\0')
t=i;//==是比較,=是賦值
for(i=t-1,j=0;i>=0;i--,j++)
*(n+j)=*(m+i);
*(n+j)='\0';
}
void
stract(char
*a,char
*b)//*將兩個字元串連接起來*//
{
char
*m=a,*n=b;
while(*m!='\0')
m++;
while(*n!='\0')
{
*m=*n;
m++;
n++;
}
*m='\0';
}