第五周

这个作业属于哪个课程C语言程序设计2
这个作业要求在哪里https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018/homework/2824
我的课程目标运用字符
这个作业在哪个具体方面帮助我实现目标解决关于字符长度及其比较
参考文献http://c.biancheng.net/view/1447.html

预习题
认识指针和数组的关系和区别
1580817-20190329144337834-1903729095.png
1580817-20190329144349199-1801849729.png
1580817-20190329144401491-1103613860.png
1580817-20190329144409819-1925147196.png

问题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;
}

思路
1580817-20190329140127992-2045217907.png
开始想用for写,但这样写得头疼,写不下去;
然后白度了下,要运用strlen和strcpy写;
strcpy(A,B)就是把B的字符串复制给A,这是C语言字符串中的复制函数
strlen()函数的作用是统计给定字符串的长度。
函数原型:unsigned int strlen(char *str);
功 能:统计字符串str中字符的个数,不包括'\0'
返 回 值:返回字符个数
1580817-20190329140950914-499048455.png
第二题
本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
代码

#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; 
}

思路

1580817-20190329142405003-1029639266.png

gets(s)函数与scanf("%s", s)相似, 但不完全相同, 使用scanf("%s", s)

函数输入字符串时存在一个问题, 就是如果输入了空格会认为输入字符串结束,

空格后的字符将作为下一个输入项处理, 但gets() 函数将接收输入的整个字符

串直到回车为止。

1580817-20190329142537481-607793759.png

学习进度条

周/日期这周所花时间代码行数学到知识点目前比较迷惑的问题
3/25-3/29一天52字符的计算和指针指针的运用

转载于:https://www.cnblogs.com/huangxing123/p/10621107.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值