#include
#include
int main()
{
int n, m;
char str[100],pcy[100];
scanf("%d", &n);
gets(str);
scanf("%d", &m);
char* pstr = str;
char* ppcy = pcy;
int i = 0;
while (*(pstr + i))
{
if (i + 1 == m)
{
ppcy = pstr + i;
break;
}
i++;
}
puts(ppcy);
return 0;
}
问题如下:
1.你这循环完全没有意义,代码不就是ppcy=pstr+m吗
2.这样搞也能输出,但是和题意不符,题意是让你复制出一份来,不是从一半开始打印,你现在能打印,但是其实内存里还是只有一个字符串,只不过是从一半开始打印的
3.指针只是一个工具,是要指向一段内存的,至于这段内存是本来就存在还是现new出来的,不重要
1,不是,可以指向一个常量字符串(如 char* s="abc"),或者自己申请内存(如 char s = (char)malloc(sizeof(char)*长度)),自己申请内存的话要记得释放内存
2,赋值就直接=,比如本题
str[100]="abc"