17.心得总结 2020-04-13

今天学习了指针,用*p表示指针,**p表示指针的指针,指针表示数据的地址,解引用的时候可以直接表示数据本身。

以下为今日练习:

1.有5个字符串,首先将它们按照字符串中的字符个数由小到大排列,再分别取出每个字符串的第三个字母合并成一个新的字符串输出(若少于三个字符的输出空格)。要求:利用字符串指针和指针数组实现

#include<stdio.h>

#include<string.h>

int main()

{

char ss[10]={"\0"};

char s[5][10]={"qwertyu","iopasd","fghjk","lzxc","vbn"};

int i,j;

for(j=0;j<4;j++)

{

for(i=0;i<4;i++)

{

if(strlen(s[i])>strlen(s[i+1]))

{

strcpy(ss,s[i]);

strcpy(s[i],s[i+1]);

strcpy(s[i+1],ss);

}

}

}

strcpy(ss,"\0");

for(i=0;i<5;i++)

{

if((*(s[i]+2))!='\0')

{

ss[i]=*(s[i]+2);

}

else

{

ss[i]=' ';

}

}

puts(ss);

for(i=0;i<5;i++)

{

puts(s[i]);

}

}

2.字符替换。要求用函数replace将用户输入的字符串中的字符t(T)都替换为e(E),并返回替换字符的个数。

#include<stdio.h>

int replace(char *p);

int main()

{

int b;

char s[20]={"\0"};

gets(s);

b=replace(s);

puts(s);

printf("替换的字符数量为:%d\n",b);

}

int replace(char *p)

{

int i;

int m=0;

for(i=0;i<20;i++)

{

if(*(p+i)=='t')

{

*(p+i)='e';

m++;

}

if(*(p+i)=='T')

{

*(p+i)='E';

m++;

}

}

return m;

}

3.编写一个程序,输入星期,输出该星期的英文名。用指针数组处理。

#include<stdio.h>

int main()

{

int a;

char s[7][20]={"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};

char *p[7];

int i;

for(i=0;i<7;i++)

{

p[i]=s[i];

}

while(scanf("%d",&a)&&a>0&&a<8)

{

puts(p[a-1]);

}

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容