1.打印菱形
#include<iostream>
using namespace std;
//打印上半部分的菱形
void PrintStarUp(int n)
{
for(int i=1;i<=n;++i)//第1行
{
for(int j=0;j<n-i;++j)//连续输出n-j个空格 (0~n-j-1)/(1~n-j)
cout<<" ";
for(int j=0;j<i;++j)//连续输出要用for循环
cout<<"*"<<" ";
cout<<endl;
}
}
//打印下半部分的菱形
void PrintStarDown(int n)
{
for(int i=1;i<n;++i)
{
for(int j=0;j<i;++j)
cout<<" ";
for(int j=0;j<n-i;j++)
cout<<"*"<<" ";
cout<<endl;
}
}
int main()
{
int n;
cin>>n;
PrintStarUp(n);
PrintStarDown(n);
return 0;
}
2.函数expand(char *s,char *t)在将字符串s复制到字符串t时
将其中的换行符和制表符转换为可见的转义字符,
即用"\n"表示换行符,"\t"表示制表符。
void expand(char *s,char *t)//两个参数是字符指针
//s指向原字符串,t指向目标字符串
{
int i,j;
for(i=0,j=0;s[i]!='\0';i++)//s是否处理到了最好一个字符
//'\0'字符串结束符
{
switch(s[i])
{
//'\n'->'\''n'
case'\n':
t[j++]='\\';//放到目标空间中,索引为j
t[j++]='n';
break;
//'\t'->'\''t'
case'\t':
t[j++]='\\';
t[j++]='t';
break;
default:
t[j++]=s[i];
break;
}
}
t[j]='0';
}