# include <stdio.h> # include <string.h> void main() { char *p1="abc",*p2="ABC",str[50]="xyz";

# include <stdio.h>
# include <string.h>
void main()
{ char *p1="abc",*p2="ABC",str[50]="xyz";
strcpy(str+3,p2);
strcat(str+2,p1);
printf("%s\n",str);
}
这个str+3 str+2什么意思啊??

意思是str[50]="xyz",这个字符数组以首地址为基准向右移动3个位置为空就是z后面的位置,str+2就是向右移动2个位置是z。就是这个意思。
这个问题归结为数组指针的位置,希望你多看看数组指针~~~追问

哦 知道了 那这个程序输出多少?

追答

字符串的处理和数组指针都是一个道理,看来你太过于死板硬套了,这些知识都是互相联系的,不是独立分开的。

温馨提示:内容为网友见解,仅供参考
无其他回答

...# include <string.h> void main() { char *p1="abc",*p2="ABC...
意思是str[50]="xyz",这个字符数组以首地址为基准向右移动3个位置为空就是z后面的位置,str+2就是向右移动2个位置是z。就是这个意思。这个问题归结为数组指针的位置,希望你多看看数组指针~~~

下面程序的输出是()
将程序修改如下:#include<stdio.h> include<string.h> main(){ char p1[10]="abc",*p2="ABC",str[50]="xyz";strcpy(str+2,strcat(p1,p2));printf("%s\\n", str);}\/\/输出结果是xyabcABC

char *p1=“abcd”, *p2=“ABCD”,str[50]=“xyz”;
strcat(p1+2,p2+1); \/\/p1是指针常值,所指对象不能修改的。2 程序改为下面,才能运行。include <stdio.h> include <string.h> void main(){ char p1[50]="abcd", p2[50]="ABCD",str[50]="xyz";strcpy(str+2,strcat(p1+2,p2+1));printf("%s",str);} \/\/运行结果是:xycd...

# include <stdio.h> void main() { char ch1 = 'A', ch2 = 'a'; p...
(ch1,ch2)是逗号表达式,结果是最后边的值,即ch2,所以输出a 希望有帮助

#include<stdio.h> #include<stdlib.h> #include<string.h> #includ...
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>struct ima{ int id; char name[20]; char produce[30]; int number; float price;};void Append();void Selldelete();void Amend();void Findin();void Browse();void colorsetting();void Endprogram();void initialization(...

...#include<string.h> void main() { char ch[]="abc",x[3][4...
你要把这个答案分成三部分来看:abc,bc,c。当i==0时,输出x[0][0]的地址所在的字符串,明显是abc;当i==1时,输出x[1][1]的地址所在的字符串,所以跳过a,从b开始输出,即bc;当i==2时,输出x[2][2]的地址所在的字符串,所以跳过ab,从c开始输出,即c;...

#include<stdio.h> #include<string.h> main() {char a[20]="ABCD\\O...
你如果确信你的数据是"ABCD\\OEFG\\0" D后是\\O(字母O,而不是0)则你的程序运行结果是: ABCDOEFGIJK 如果你的数据是:"ABCD\\0EFG\\0" D后是\\0(数字0)则你的程序运行结果是: ABCDIJK strcat时是从第一个地址位置开始,先找到\\0位置,然后将第二个指针所指的内容连到其后。

#include<stdio.h> void main() { char a='本金',b='年数',c='年利率...
#include "stdio.h"void main(){int a=1,b=0;for(;a3;a++)switch(a++){case 1: b--;break;case 2: b++;break;case 3: b+=3;break;}printf("%d\\n",b);}A)0B)-1C)3D)其他14.以下程序的运行结果是( )。void main(){int a=4; char ch=’a’;printf( "%d\\n",(a2)(ch’A’...

...#include<string.h> void main() { char str[80],*p;int i,a,n...
这个语句是没有错的,错的是后面少一个}。

#include<stdio.h> void main() {char p[]={'a','b','c'},q[10]={...
我有运行的结果是15 3,知道为什么吗?因为strlen是用来计算字符串长度的,也就是说读到 '\\0' 才计算长度,由于 p[] 的长度是未知的,因此strlen出来的结果也是未知的,而 q[] 在最后自动帮你补了个 '\\0',因此读出来是3

相似回答
大家正在搜