64,637
社区成员
发帖
与我相关
我的任务
分享
函数接受一个字符串地址,并打印该字符串。
count 用于记录display被调用的次数,
如果函数调用时,传递了第二个参数,且第二个参数非0,则打印字符串count次。
#include <iostream>
#include <cstring>
using namespace std;
void display (const char *str, int =0);
int count =0;
int main()
{
char *p ="mutou";
display (p);
display (p);
display (p);
display (p);
char *pt ="123456";
display (pt, 3);
cin.get();
cin.get();
return 0;
}
void display (const char *str,int n)
{
const char *p =new char[strlen(str)+1];
p = str;
if (n != 0)
{
for (int i =0; i < count; i++){
while (*str != '\0')
cout << *str++; //讨论这个*str++的优先级
cout << endl;
str = p;
}
}
else
{
while (*str != '\0')
cout << *str++; //同上
cout << endl;
}
count++;
}
while (*str++ != '\0')//第一个字符不等于空字符,为true。然后指针指向第二个字符
cout << *str; //由于指针刚才指向第二个字符,所以输出第二个字符
while (*str != '\0')//第一个字符不等于空字符,
cout << *str++;//输出第一个字符,然后指针指向第二个字符
const char *p =new char[strlen(str)+1];
p = str;
#include <iostream>
#include <cstring>
using namespace std;
void display (const char *str, int =0);
int count =0;
int main()
{
char *p ="mutou";
display (p);
display (p);
display (p);
display (p);
char *pt ="123456";
display (pt, 3);
cin.get();
cin.get();
return 0;
}
void display (const char *str,int n)
{
const char *p =new char[strlen(str)+1];
p = str;
if (n != 0)
{
for (int i =0; i < count;i++){
while (*str++ != '\0')//第一个字符不等于空字符,为true。然后指针指向第二个字符
cout << *str; //由于指针刚才指向第二个字符,所以输出第二个字符
cout << endl;
str = p;
}
}
else
{
while (*str != '\0')//第一个字符不等于空字符,
cout << *str++;//输出第一个字符,然后指针指向第二个字符
cout << endl;
}
count++;
}
是这个意思吗?
首先char* strTMP = str;
然后str = str + 1;
最后表达式*str++的值等于:*strTMP,但是str递增了
#include <iostream>
#include <cstring>
using namespace std;
void display (const char *str, int =0);
int count =0;
int main()
{
char *p ="mutou";
display (p);
display (p);
display (p);
display (p);
char *pt ="123456";
display (pt, 3);
cin.get();
cin.get();
return 0;
}
void display (const char *str,int n)
{
const char *p =new char[strlen(str)+1];
p = str;
if (n != 0)
{
for (int i =0; i < count;i++){
while (*str++ != '\0')
cout << *str;
cout << endl;
str = p;
}
}
else
{
while (*str++ != '\0')
cout << *str;
cout << endl;
}
count++;
}