struct Text{
int length;
char *txt;
};
void print(struct Text myTxt)
{
while ( myTxt.txt < myTxt.txt + myTxt.length )
{
printf("%c", ++myTxt.txt);
}
}
int main()
{
struct Text myText;
char test[] = "long long test text";
myText.length = sizeof (test) / sizeof (char);
myText.txt = test;
print(myText);
gets();
return 0;
}
我知道打印功能是错误的,但如何修复它。
最佳答案
您的问题是print
修改传递给它的结构具体地说,要打印每个字符,您需要递增myTxt.txt
,然后打印它您的while
循环也不正确:如果myTxt.txt < myTxt.txt + myTxt.length
大于零,myTxt.length
将始终为真。
你可以这样解决:
void print(struct Text myTxt)
{
char *txt = myTxt.txt;
while ( txt < myTxt.txt + myTxt.length )
{
printf("%c", *txt++);
}
}
这将
txt
设置为myTxt.txt
,因此您可以在不修改txt
的情况下修改myTxt.txt
。关于c - 从C中的结构读取文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6171106/