这个作业属于哪个课程 | C语言程序设计2 |
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018/homework/2824 |
我的课程目标 | 运用字符 |
这个作业在哪个具体方面帮助我实现目标 | 解决关于字符长度及其比较 |
参考文献 | http://c.biancheng.net/view/1447.html |
预习题
认识指针和数组的关系和区别
问题1:指针是否相当于一个字符盒子
问题2:指针怎么用
输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。
代码
#include<bits/stdc++.h>
int main()
{
char word[20][10],t[20],words[10];
int i,j,n=0;
for (i=0; ; i++){
scanf("%s",words);
if(words[0]=='#')
break;
else
{
strcpy(word[n],words);
n++;
}
}
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
{
if(strlen(word[j])>strlen(word[j+1]))
{
strcpy(t,word[j]);
strcpy(word[j],word[j+1]);
strcpy(word[j+1],t);
}
}
for(i=0;i<n;i++)
{
printf("%s ",word[i]);
}
return 0;
}
思路
开始想用for写,但这样写得头疼,写不下去;
然后白度了下,要运用strlen和strcpy写;
strcpy(A,B)就是把B的字符串复制给A,这是C语言字符串中的复制函数
strlen()函数的作用是统计给定字符串的长度。
函数原型:unsigned int strlen(char *str);
功 能:统计字符串str中字符的个数,不包括'\0'
返 回 值:返回字符个数
第二题
本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
代码
#include<bits/stdc++.h>
int main()
{
char a[666];
gets(a);
int m,i,j;
m=strlen(a);
if(a[0]==' ')
j=0;
else
j=1;
for(i=0;i<m-1;i++)
{
if(a[i]==' ' && a[i+1]!=' ')
j++;
}
printf("%d\n",j);
return 0;
}
思路
gets(s)函数与scanf("%s", s)相似, 但不完全相同, 使用scanf("%s", s)
函数输入字符串时存在一个问题, 就是如果输入了空格会认为输入字符串结束,
空格后的字符将作为下一个输入项处理, 但gets() 函数将接收输入的整个字符
串直到回车为止。
学习进度条
周/日期 | 这周所花时间 | 代码行数 | 学到知识点 | 目前比较迷惑的问题 |
---|---|---|---|---|
3/25-3/29 | 一天 | 52 | 字符的计算和指针 | 指针的运用 |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥