2021-11-23 学习的打卡学习第一天(字符串函数)

今天和明天满课,真的比较忙,有一堆作业要做。也就晚上抽空做了一点编程题。

学习了一些字符串函数:

strcmp函数——字符串比较函数
其一般形式为
strcmp(字符串1,字符串2)
strcmp是STRing CoMPare(字符串比较)的缩写。它的作用是比较字符串1和字符串2。
比较的结果由函数值带回。
(1)如果字符串1与字符串2相同,则函数值为0。

(2)如果字符串1>字符串2,则函数值为一个正整数。

(3)如果字符串1<字符串2,则函数值为一个负整数。

strlwr 函数——转换为小写的函数
其一般形式为
strlwr(字符串)
strlwr是STRing LoWeRcase(字符串小写)的缩写。函数的作用是将字符串中大写字母茶成小写字母。

strupr函数——转换为大写的函数
其一般形式为
strupr(字符串)
strupr是STRing UPpeRcase(字符串大写)的缩写。函数的作用是将字符串中小写字母换成大写字母。

strlen 函数——测字符串长度的函数
其一般形式为
strlen(字符数组)
strlen是STRing LENgth(字符串长度)的缩写。它是测试字符串长度的函数。其值为字符串中的实际长度(不包括\0'在内)。

例题:Little Petya喜欢礼物。 他的妈妈送给他两个长度相同的字符串作为礼物。 字符串由大写和小写字母组成。 现在Petya想按字典序比较这两个字符串。 但是字母的大小写无关紧要,即大写字母被认为等同于相应的小写字母。 请帮助Petya执行比较。

Input:

      每个测试点包含两行字符串,长度为1 to 100 .保证长度相等且包含大小写字母

Output:

       如果第一行小于第二行,输出 "-1". 如果第二行小于第一行,输出"1". 如果相等,输出"0".注意比较时要忽略字母的大小写

Examples:

Input

aaaa
aaaA

Output

0

Input

abcdefg
AbCdEfF

Output

1
#include<stdio.h>
#include<string.h>
int main()
{
    char a[10000],b[10000];
    int c;
    gets(a);
    gets(b);
    strlwr(a);
    strlwr(b);
    c=strcmp(a,b);
    if(c>0)
        printf("1");
    if(c<0)
        printf("-1");
    if(c==0)
        printf("0");
    return 0;
}

例题:小A需要写一个程序,对给定的字符串,进行如下处理: 1.删除所有的元音字符('A', 'O', 'E', 'I', 'U', 'Y') 2.将所有大写字符转换为小写字符 3.将剩下的每个字符前面加入一个'.' 帮助小A完成这个程序

Input

一行字符串,长度|s|满足(1 <= |s| <= 100)

Output

输出处理后的字符串

Examples

Input

tour

Output

.t.r

Input

Codeforces

Output

.c.d.f.r.c.s

Input

aBAcAba

Output

.b.c.b
#include<stdio.h>
#include<string.h>
int main()
{
    char a[10000];
    gets(a);
    strlwr(a);
    int n,i=0,r=0;
    n=strlen(a);
    for(i=0;i<n;i++)
    {
        if(a[i]=='a'||a[i]=='o'||a[i]=='u'||a[i]=='e'||a[i]=='i'||a[i]=='y')
        {
            for(r=i;r<n-1;r++)
            {
                a[r]=a[r+1];
            }
            n=n-1;
            i=i-1;
        }
    }
    for(i=0;i<n;i++)
        printf(".%c",a[i]);
    return 0;
}

例题:

“张某人”是个强迫症患者,它每次睡醒后都会看一下时间,它想知道在当前时间在之后下一个Good Time 在哪里?Good Time 是这样定义的:从左往右看和从右往左看是一样的,例如12:21,13:31。

Input

输入的第一行也是唯一一行以字符串“HH:MM”开头,格式为“HH”取值范围为“00”~“23”,“MM”取值范围为“00”~“59”。“HH”和“MM”都是两位数。

Output

在输入中给出的时间之后,打印一天中出现最快的回文时间。如果输入的时间是回文的,则在输入时间之后输出最快的回文时间。

Examples

Input

12:21

Output

13:31

Input

23:59

Output

00:00
#include<stdio.h>
#include<string.h>
int main()
{
    int a,b,c=0,d=0;
    scanf("%d",&a);
    getchar();
    scanf("%d",&b);
    if(a==23&&b>32)
        printf("00:00");
    if(a==23&&b<=32)
        printf("23:32");
    if(a!=23)
    {
     if(b>=(a%10*10+a/10))
     {
      a=a+1;
      if(a>=10)
      {
          c=a%10;
          d=a/10%10;
          if(c>=6&&c<=9)
            printf("20:02");
          else
          printf("%d:%d%d",a,c,d);
      }
      else
      {
          c=a;
          if(c>=6&&c<=9)
          printf("10:01");
          else
          printf("0%d:%d0",a,c);
      }
     }
     else
     {
       if(a>=10){
       c=a%10;
       d=a/10%10;
       if(c>=6&&c<=9)
            printf("20:02");
       else
       printf("%d:%d%d",a,c,d);
       }
       else
       {
          c=a;
          if(c>=6&&c<=9)
          printf("10:01");
          else
          printf("0%d:%d0",a,c);
       }
     }
    }
    return 0;
}

例题:

你得到一个由26个键组成的键盘。键按一定的顺序排列在一行中。每个键对应一个唯一的小写拉丁字母。 你必须在这个键盘上打单词。它也只由小写的拉丁字母组成。 要输入一个单词s,你需要一个接一个地连续输入它的所有字母。要输入每个字母,你必须把你的手准确地放在相应的键上并按下它。 在键之间移动手需要的时间等于这些键的位置差的绝对值(键是从左到右编号)。没有时间花在按下按键和把你的手放在单词的第一个字母上。 例如,考虑一个键盘,其中从“a”到“z”的字母按连续的字母顺序排列。字母“h”、“e”、“l”和“o”分别位于8、5、12和15位。因此,它将花费|5 - 8| + |12 - 5| + |12 - 12| + |15 - 12| = 13个单位的时间来输入单词“hello”。 确定打印单词s需要多长时间

Input

第一行包含一个整数t(1≤t≤1000)-测试用例的数量。 接下来的2t行包含测试用例的描述。 描述的第一行包含一个键盘——一个长度为26的字符串,仅由小写拉丁字母组成。从“a”到“z”的每个字母在键盘上只出现一次。 第二行描述内容为“s”,由小写拉丁字母组成,长度为1 ~ 50个字符。

Output

打印t行,每行包含对应测试用例的答案。测试用例的答案是在给定的键盘上键入单词s所需的最小时间。

Example

Input

5
abcdefghijklmnopqrstuvwxyz
hello
abcdefghijklmnopqrstuvwxyz
i
abcdefghijklmnopqrstuvwxyz
codeforces
qwertyuiopasdfghjklzxcvbnm
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
qwertyuiopasdfghjklzxcvbnm
abacaba

Output

13
0
68
0
74
#include<stdio.h>
#include<string.h>
int main()
{
    int n;
    scanf("%d",&n);
    char a[27],b[10000];
    a[0]='1';
    int i=0,r=0,z=0,t=0,k=0,c=0,l=0,o=0,m=0;
    getchar();
    for(i=0;i<n;i++)
    {
        for(r=1;r<27;r++)
        scanf("%c",&a[r]);
        getchar();
        gets(b);
        z=strlen(b);
        for(r=0;r<z;r++)
        {
           for(t=1;t<27;t++)
           {
               if(a[t]==b[r])
               {
                   if(m==0)
                   {
                       k=t;
                       o=0;
                       m++;
                   }
                   else
                   {
                       c=k;
                       k=t;
                       l=c-k;
                       if(l<0)
                        l=-l;
                       o=l+o;
                   }
               }
           }
        }
        printf("%d\n",o);
        z=0;c=0;k=0;l=0;o=0;m=0;
    }
    return 0;
}

例题:

这是个签到题。
一开始你有一个只包含了0和1的字符串。
现在你希望这个字符串当中的所有1的下标组成的区间只有一个,也就是所有1是相邻的。
00,11,000111或者001111000都是符合的字符串。
1010,10001,111101都是不符合的字符串。
为了得到这样的字符串,你可以删除原来字符串中的若干个0,现在询问你最少需要删除几个0能得到这样的字符串。

Input

第一行包含了一个整数t(1 < = t < = 100)代表数据组数
接下来t行,每行为一组数据。
每行有一个字符串s,字符串只包含0和1且长度范围为1到100(闭区间)

Output

在t行中每行输出一个整数,代表对应数据组数的字符串变为满足要求的字符串所需的最少删除的0的个数。

Example

Input

3
00100111
00
11100

Output

2
0
0
#include<stdio.h>
#include<string.h>
int main()
{
    int i=0,n,z,r=0,t=0,q=0,e=0;
    char a[10000];
    scanf("%d",&n);
    getchar();
    for(i=0;i<n;i++)
    {
      gets(a);
      z=strlen(a);
      for(r=0;r<z;r++)
      {
          if(a[r]=='1')
            t=r;
      }
      for(r=0;r<z;r++)
      {
          if(a[r]=='1')
            {
                q=r;
                break;
            }
      }
      for(r=q;r<t;r++)
      {
          if(a[r]=='0')
            e++;
      }
      printf("%d\n",e);
      t=0;q=0;e=0;
    }
    return 0;
}

2021/11/23/    23:52

今晚又有一堆事,又要通宵了_(:з」∠)_

注释,我会在风和日丽的一天补上的,时间有限,遁了遁了。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的微信小程序制作学习计划打卡记录页面的代码示例,其中包含了前几天的学习时间: ``` <view class="container"> <view class="header"> <text>学习计划打卡记录</text> </view> <view class="content"> <view class="card"> <view class="card-header"> <text>今天</text> <text>2021-07-01</text> </view> <view class="card-body"> <view class="card-row"> <text>学习时间:</text> <input type="number" placeholder="请输入学习时间(分钟)"/> </view> </view> </view> <view class="card"> <view class="card-header"> <text>昨天</text> <text>2021-06-30</text> </view> <view class="card-body"> <view class="card-row"> <text>学习时间:</text> <input type="number" placeholder="请输入学习时间(分钟)"/> </view> <view class="card-row"> <text>已学习:</text> <text>120分钟</text> </view> </view> </view> <view class="card"> <view class="card-header"> <text>前天</text> <text>2021-06-29</text> </view> <view class="card-body"> <view class="card-row"> <text>学习时间:</text> <input type="number" placeholder="请输入学习时间(分钟)"/> </view> <view class="card-row"> <text>已学习:</text> <text>90分钟</text> </view> </view> </view> </view> </view> ``` 在上面的代码中,我们使用了三个 `card` 元素来展示前几天的打卡记录。每个 `card` 元素都包含一个 `card-header` 元素和一个 `card-body` 元素。`card-header` 元素中包含了日期信息,而 `card-body` 元素中包含了输入框和已学习时间的显示。 在实际开发中,你需要将上面的代码替换成你自己的样式和数据。同时,你还需要编写处理用户输入和计算已学习时间的逻辑代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值