这个作业属于哪个课程 | 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中字符的个数,不包括' '
返 回 值:返回字符个数
第二题
本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
代码
#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
",j);
return 0;
}
思路
gets(s)函数与scanf("%s", s)相似, 但不完全相同, 使用scanf("%s", s)
函数输入字符串时存在一个问题, 就是如果输入了空格会认为输入字符串结束,
空格后的字符将作为下一个输入项处理, 但gets() 函数将接收输入的整个字符
串直到回车为止。
学习进度条
周/日期 | 这周所花时间 | 代码行数 | 学到知识点 | 目前比较迷惑的问题 |
---|---|---|---|---|
3/25-3/29 | 一天 | 52 | 字符的计算和指针 | 指针的运用 |