当前位置:首页 » 编程语言 » 指针连接字符串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';
}