C语言中strcpy的用法! 要举例哦!简单的哦!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中strcpy的用法! 要举例哦!简单的哦!相关的知识,希望对你有一定的参考价值。

要输出结果哦

1、strcpy的作用是把从src地址开始且含有'\\0'结束符的字符串复制一份到以dest开始的地址空间。首先在最前面添加#include<string.h>头文件,strcpy函数需要依赖该库,然后写好main函数,下面是演示strcpy的详细用法:

2、演示里首先定义两个字符数组,然后strcpy的定义是“char *strcpy(char *dest, const char *src);”这里直接调用strcpy函数复制字符串,这样就将test字符串拷贝到table数组中,最后通过puts函数打印出table数组的字符串:

3、在linux下保存文件然后退出vim编辑器,通过gcc编译器编译,终端中输入“gcc strcpy.c -o strcpy.out”编译运行程序,最后执行指令“./strcpy.out”编译后的可执行文件,回车就能看到拷贝的字符串输出:

参考技术A

下面是 strcpy() 函数的声明:

char *strcpy(char *dest, const char *src)

参数:

1.dest -- 指向用于存储复制内容的目标数组。

2.src -- 要复制的字符串。

实例:

#include <stdio.h>

#include <string.h>

int main ()

char str1[]="Sample string";  

char str2[40];  char str3[40];  

strcpy (str2,str1);  

strcpy (str3,"copy successful");  

printf ("str1: %s\\nstr2: %s\\nstr3: %s\\n",str1,str2,str3);  

return 0;

扩展资料:

需要说明的是:

1、一个C语言源程序可以由一个或多个源文件组成。

2、每个源文件可由一个或多个函数组成。

3、一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。是整个程序的入口。

4、源程序中可以有预处理命令(包括include 命令,ifdef、ifndef命令、define命令),预处理命令通常应放在源文件或源程序的最前面。

5、每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“”之后不能加分号。结构体、联合体、枚举型的声明的“”后要加“ ;”。

6、标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。

参考资料:

百度百科-c语言

参考技术B

函数原型char *strcpy(char *str1, const char *str2),传参2个字符数组指针,将str2指向地址的字符串复制到str1指向地址的字符串。

注意str1内存大小必须要大于等于str2(小于的话有的编译器可能不报错,但是还是越界了)。

另外注意str2必须是包含结束符号'\\0'的完整字符串。

比如定义char str1[ ]="abcd";常量字符串“abcd”是5个字节“abcd\\0”最后一位是结束符号,那么str2[ ]定义大小不能小于5。所以可以写:

#include<stdio.h>
#include<string.h>
int main()

    char str1[]="abcd",str2[5];
    strcpy(str2,str1);
    printf("%s\\n",str2);
    return 0;

这样就把str1的字符串复制到了str2。

又比如

#include<stdio.h>
#include<string.h>
int main()

    char str1[5],str2[5];
    str1[0]='a';str1[1]='b';str1[2]='c';str1[3]='d';
    str1[4]=0;//这次不是在定义时赋的初值,所以最后1位要手动置0
    //(结束符号'\\0'的数值表示就是0)。
    //如果不写这句,那么函数将无法知道str1的字符串长度,访问会越界。
    strcpy(str2,str1);
    printf("%s\\n",str2);
    return 0;

参考技术C

#include<stdio.h>
#include<string.h>
int main()
char s1[10]="Chinese",s2[10]="English",t[10];
 printf("s1=%s\\ts2=%s\\n",s1,s2);
 strcpy(t,s1);    //把字符串s1赋给t
 strcpy(s1,s2);   //把字符串s2赋给s1
 strcpy(s2,t);    //把字符串t赋给s2
 printf("Now:\\ns1=%s\\ts2=%s\\n",s1,s2);
 return 0;

参考技术D strcpy就是复制字符串。 形式是
strcpy(a,b); 简单的理解就是a=b. 当然 字符串不能这样直接赋值, 而是用函数实现的。
比如 char a[10],b[10]="abcd";
strcpy(a,b);之后
a="abcd";

c++字符串替换中while和strcpy具体用法

字符串替换、取子串函数实现2008年05月18日 星期日 16:41/*****************************************************************************************************************************
* 函数原型:char* str_rep(char *str, const char *strSearch, const char *strReplace)

* 描述:字符串替换,查找字符串,把字符串中strSearch字符串替换为strReplace
* 输入参数:三个字符串
* 输出参数:替换后的str
* 返回值:成功返回指向str的指针,失败(如传入NULL参数)返回NULL
* 分析:字符替换过程中不考虑内存溢出问题,str如果被替换后变长,要有足够空间容纳新增字符和null字符
* 改进:可以增加一个参数,传入所能容纳的最大长度,在函数里必要时判断新串是否到达最大长度
*******************************************************************************************************************************/

#include <stdio.h>
#include <string.h>

char* str_rep(char *str, const char *strSearch, const char *strReplace)

char *pTemp = str;
int iStrSearlen, iStrReplen, iTemp;

if (str == NULL || strSearch == NULL || strReplace == NULL)

return NULL;


iStrSearlen = strlen(strSearch);
iStrReplen = strlen(strReplace);
iTemp = iStrSearlen - iStrReplen;

if( iStrSearlen == 0 ) //如果查找字符串的长度为0(调用strstr()函数前必须考虑的),直接返回

return str;


while(pTemp = strstr(pTemp, strSearch)) //匹配到字符串,进行替换。

const char *p = strReplace;
if(iTemp < 0)

int i = strlen(str);
while (i >= pTemp-str+iStrSearlen) //i >= pTemp-str+iStrlen

str[i-iTemp] = str[i]; //整体向后移动-iTemp位(包括最后的'\0'),注意iTemp<0
i--;

while(*p != '\0') //替换字符串

*pTemp++ = *p++;


else

while(*p != '\0')

*pTemp++ = *p++;


if(iTemp > 0) //如果匹配字符比替换字符长,则整体左移iTemp位

strcpy(pTemp, pTemp+iTemp);



return str;


//用strncpy(substr, str+begin, len);就是substr了
char* str_sub(char *substr, const char *str, size_t begin, size_t len)

strncpy(substr, str+begin, len);
substr[len] = '\0';

return substr;


int main()

char str1[10]="123456789";
char str2[10]="abcdefghi";
char *p;
str1[6]='\0';

puts(str1);
p = str_rep(str1, "12", "1212");
if (p)

puts(p);

while(pTemp = strstr(pTemp, strSearch))
while (i >= pTemp-str+iStrSearlen)
strcpy(pTemp, pTemp+iTemp);
都是什么意思啊?

怎么编得这么复杂?
看我的:
/*extracting substring*/

#include <iostream>

using namespace std;

char *subString(const char * const s, int start, int end)

char * pNewString = new char[end - start + 1];

int j = 0;
for (int i = start; i < end; i++, j++)

pNewString[j] = s[i];


pNewString[j] = \'\\0\';

return pNewString;


int main()

char *s = "Atlanta, Georgia";
cout << subString(s, 0, 7) << endl;;

return 0;
参考技术A 你QQ多少.教教我好吗?我QQ435289889

以上是关于C语言中strcpy的用法! 要举例哦!简单的哦!的主要内容,如果未能解决你的问题,请参考以下文章

C语言strcat函数怎么用

c语言strcpy()用法

C语言中strcat和strcpy的区别

C/C++C语言复制字符串及复制函数汇总(strcpy()/memcpy()/strncpy()/memmove())

收集一些网络流行的缩写,要附上翻译哦!要多多的哦!

memcpy在C语言中的含义,与strcpy区别