可以运行 但是输出第一个字符串
#include <stdio.h>
int m=3;int i,j;
int sort(char *p3[],char *p4[])
{
for(i=m;i<10;i++){
p3[i]=p4[i];
}
}
int main(int argc, char *argv[])
{
char a[10]={"DIYICHUAN"};
char b[10]={"hhh/0"};
char *p1[10],*p2[10];
p1[0]=&a[0];p2[0]=&b[0];
sort(p1,p2);
printf("%s",*p1);
return 0;
}
这样:
#include<stdio.h>
#include<string.h>
int main ()
{
void copystr(char *,char *,int);
int m;
char str1[20],str2[20];
printf("input string:");
gets(str1);
printf("which character that begin to copy?");
scanf("%d",&m);
if(strlen(str1) < m)
{
printf("input error!");
}
else
{
copystr(str1,str2,m);
printf("result:%s\n",str2);
}
return 0;
}
void copystr(char *p1,char *p2,int m)
{
int n;
n = 0;
while(n < m - 1)
{
n++;
p1++;
}
while(*p1 != '\0')
{
*p2 = *p1;
p1++;
p2++;
}
*p2 = '\0';
}
注意事项
/*输入一个字符串,将该字符串中从第m个字符
开始的全部字符复制成另一个字符串。m由用户
输入,小于字符串的长度。*/
#include <stdio.h>
#include <stdlib.h>
void mcopy(char array1[],char array2[],int m)
{
int i,j;
for(i=m-1,j=0;array2[j]!=0;i++,j++)
array1[i]=array2[j];
array1[i]=0;
}
int main()
{
char array1[20],array2[10];
int m;
printf("Give array1:");
gets(array1);
printf("Give array2:");
gets(array2);
printf("Give m:");
scanf("%d",&m);
mcopy(array1,array2,m);
printf("After changed:");
puts(array1);
return 0;
}
#include<stdio.h>
#include<string.h>
intcopy(char*p1,char*p2,intm);
intmain()
{
charstr1[40],str2[40];
printf("输入第一个字符串:\n");
gets(str1);
intm;
printf("输入第m个字符开始:\n");
scanf("%d",&m);
if(strlen(str1)<m)
printf("错误");
else
{
copy(str1,str2,m);
printf("%s",str2);
}
return0;
}
intcopy(char*p1,char*p2,intm)
{
intn;
n=0;
while(n<m-1)
{
n++;
p1++;
}
while(*p1!='\0')
{
*p2=*p1;
p1++;
p2++;
}
}
扩展资料
C语言字符指针字符串复制
#include<stdio.h>
voidcopy(chardststr[],charsrcstr[]);
intmain()
{
chara[100],b[100];
printf("Pleaseenterastring:");
gets(a);//输入字符串,存放数组a中
copy(b,a);//将字符数组a中的字符串复制到b中
printf("Thecopyis:\n");
puts(b);//输出复制后的字符串b
return0;
}
voidcopy(char*dststr,char*srcstr)
{
while(*srcstr!='\0')//循环直到字符srcstr[i]是字符串的结束标志为止
{
*dststr=*srcstr;//复制当前指针所指向的字符
srcstr++;//使srcstr指向下一个字符
dststr++;//使dststr指向下一个存储单元
}
*dststr='\0';//在字符串dststr的末尾添加字符的结束标志,避免复制的字符串溢出
}
/*
//或则函数copy()编写成这样
voidcopy(char*dststr,char*srcstr)
{
do
{
*dststr=*srcstr;//复制当前指针所指向的字符
srcstr++;//使srcstr指向下一个字符
dststr++;//使dststr指向下一个存储单元
}while(*srcstr!='\0');//循环直到字符srcstr[i]是字符串的结束标志为止
}
*/
事实上,还可以如下更为简洁的形式编写函数copy():
voidcopy(char*dststr,char*srcstr)
{
while((*dststr++=*srcstr++)!='\0')//循环直到字符srcstr[i]是字符串的结束标志为止
{}
}
本回答被网友采纳你这个运行错误啊
追答将int sort(char *p3,char *p4);
改为 void sort(char *p3,char *p4);
printf("%s",*p1);
改为
printf("%s",p1);
恩 很对 但是要用指针哥们~
c语言 输入一个字符串,将该字符串中从第m个字符开始的全部字符复制到另...
cout << "请输入m:";cin >> m;\/\/按照提示:输入指定复制元素起始坐标 for (i = 0; b[i - 1] != '\\0'; i++)\/\/遍历从指定元素开始,到字符串结束停止 { b[i] = a[i + m -1 ];\/\/从a数组第m个元素开始依次复制给b数组 } cout << "第m个后面的字符串为:" << b << ...
c语言 输入一个字符串,将该字符串中从第m个字符开始的全部字符复制到另...
s1是char * 类型的, 你把s1想成是: char s1[m+n]的一个数组, s1++ 相当于从s1[0]--->s1[1] ; 用while(n --) 则移动了n次,则移到了s1[n-1]位置
...函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串...
char *s2,int m); char s1[20]; char s2[20]; \/\/n=sizeof(s1)\/sizeof(int); \/\/n=sizeof(s1)会返回20,但这明显不是你需要的 gets(s1); printf("输入字符串为:%s ",s1);
...将此字符串中从第m个字符开始的全部字符复制成为另一个字符串...
include<stdio.h>void copystr(char *s,int m,char *p){for(s+=m-1;*p++=*s++;);}int main(){char s1[200],s2[100]; int m; gets(s1); scanf("%d",&m); copystr(s1,m,s2); printf("%s\\n",s2); return 0;}
...一个程序,将字符串的第m个字符开始的全部字符复制成另一个字符串
直接在main函数中调用就行了,C++和C都能编译.ch为要复制的字符串,m为要复制的第几个字符,注意是第几个字符,不是下标如果是按下标的话,把int n=m-1;改为n=m;ch2为被复制到的目标字符串.注意ch2一定要足够大. slatop | 发布于2012-01-08 举报| 评论 3 1 #include<stdio.h>#include<string.h>...
...函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串...
int m;printf("原字符串是:\\n%s\\n",a);printf("请输入m的值\\n");scanf("%d",&m);for(p=a+m;*p1++=*p++;);printf("复制后的字符串是:\\n%s\\n",b);} 输入5回车 结果输出 a student.I must study hard! (因为数组的下标是从0开始的)没奖赏就不多解释啦 自己琢磨一下哈 ...
...将此字符串中从第m个字符开始的全部字符复制成为另外一个字符串_百...
这个我不太清楚呢!来拣分的
求C语言程序,高手请进...
scanf("%c",&c);delchar(s,c);printf("After deleted, the string is:%s\\n",s);}*\/ \/*3.字符串复制。输入一个字符串t和一个正整数m,将字符串t中从第m个字符开始的全部字符复制到字符串s中,再输出字符串s 。要求用字符指针定义并调用函数strmcpy(s,t,m),它的功能是将字符串t中从...
从键盘输入一个字符串,将其中的小写字母全部转换为大写字母,然后输出...
实现该功能的吃语言具体代码如下:include <stdio.h> include <stdlib.h> include <string.h> int main(){ FILE *fp;int i=0;char str[100];printf("请输入字符串,并且以感叹号!结束:\\n");if((fp=fopen("test.txt","w"))==NULL)\/\/打开输出文件并使fp指向此文件 { printf("无法打开...
c++,c语言把一个字符串复制到另外一个字符串中。我不明白为什么要在复制...
没有初始化的时候。编译器默认分配的字符,就是那些乱码 烫~~~输出puts函数是遇到'\0'结束符就结束字符串的输出,没有结束符标志自然全部输出,会有乱码 如果你不进行str2[i] = '\\0';赋值的话。那你在最开始 str2[80]要进行初始化 str2[80]=0;这样就一样的效果。有问题请追问 ...