使用指针将一个字符串复制到另一个字符串的程序不产生任何输出
Program which copies one string to another using pointers produces no output
我写了以下代码,它使用指针从一个字符串复制到另一个字符串。
#include<stdio.h>
int main() {
char strA[80] = "A string to be used for demonstration purposes";
char strB[80];
char *ptrA;
char *ptrB;
ptrA = strA;
ptrB = strB;
puts(ptrA);
while(*ptrA != '[=10=]') {
*ptrB++ = *ptrA++;
}
*ptrB = '[=10=]';
puts(ptrB); // prints a new line.
return 0;
}
为什么 puts(ptrB)
只打印一个换行符?但是 puts(ptrA)
打印 strA
.
的值
循环后,ptrA
和 ptrB
这两个指针现在指向字符串的末尾。打印它们就是打印一个空字符串。新行由 puts()
.
添加
ptrA
打印原始字符串的原因是因为在循环之前调用了 puts(ptrA);
。
要打印原始字符串,请使用 puts(strB)
,或者,如果您愿意,让 ptrB
返回:
*ptrB = '[=10=]'
ptrB = strB; //add this
puts(ptrB);
我写了以下代码,它使用指针从一个字符串复制到另一个字符串。
#include<stdio.h>
int main() {
char strA[80] = "A string to be used for demonstration purposes";
char strB[80];
char *ptrA;
char *ptrB;
ptrA = strA;
ptrB = strB;
puts(ptrA);
while(*ptrA != '[=10=]') {
*ptrB++ = *ptrA++;
}
*ptrB = '[=10=]';
puts(ptrB); // prints a new line.
return 0;
}
为什么 puts(ptrB)
只打印一个换行符?但是 puts(ptrA)
打印 strA
.
循环后,ptrA
和 ptrB
这两个指针现在指向字符串的末尾。打印它们就是打印一个空字符串。新行由 puts()
.
ptrA
打印原始字符串的原因是因为在循环之前调用了 puts(ptrA);
。
要打印原始字符串,请使用 puts(strB)
,或者,如果您愿意,让 ptrB
返回:
*ptrB = '[=10=]'
ptrB = strB; //add this
puts(ptrB);