中国大学MOOC 浙江大学 C语言程序设计进阶 翁恺 自拟题解

第一章

题目:

字符串比对

题目内容:

题目说起来很简单,你会读到两个字符串,每个字符串占据一行,每个字符串的长度均小于10000字符,而且第一个字符串的长度小于第二个字符串的。你的程序要找出第一个字符串在第二个字符串中出现的位置,输出这些位置,如果找不到,则输出-1。

注意,第一个字符的位置是0。

注意,第一个字符串在第二个字符串中的位置可能不止一处。

注意,字符串中可能含有空格。

注意,两个字符串的长度一定大于0。

输入格式:

两个字符串,一行一个。

输出格式:

第一个字符串在第二个字符串中出现的位置,按照从小到到的顺序排列,每个数字后面有一个空格。

如果在第二个字符串中找不到第一个字符串,则输出-1。

输入样例:

abba

ababbba abbabbabbabbaacc

输出样例:

8 11 14 17

自拟题解:

 1 #include <stdio.h>
 2 #include <string.h>
 3 int main()
 4 {
 5     char str1[10000]={‘\0‘}, str2[10000]={‘\0‘};
 6     int i=0, j=0, flag=0, ch;
 7
 8     while((ch=getchar())!=‘\n‘)
 9         str1[i++] = ch;
10     i = 0;
11
12     while((ch=getchar())!=‘\n‘)
13         str2[i++] = ch;
14     i = 0;
15
16     int len1 = strlen(str1);
17     int len2 = strlen(str2);
18     char temp[10000]={‘\0‘};
19
20     for(i=0; i<len2; i++)
21     {
22         //指针p指向每次需要比较的字符串首字符
23         char *p = &str2[i];
24         strcpy(temp, p);
25         //截取len1长度的字符串
26         temp[len1] = ‘\0‘;
27
28         if(!strcmp(str1, temp))
29         {
30             printf("%d ", i);
31             flag++;
32         }
33
34     }
35     if(flag==0)
36         printf("-1");
37     return 0;
38
39 } 

 

  

原文地址:https://www.cnblogs.com/zxbt/p/10849327.html

时间: 2024-10-04 18:02:15

中国大学MOOC 浙江大学 C语言程序设计进阶 翁恺 自拟题解的相关文章

C语言程序设计(翁恺)--第三周课件中的三个遗留点

刚刚写完第二周遗留点,下面写第三周的 第三周:判断 1.if和else后面也可以没有{}而是一条语句.如果if后不带{},但是后面跟了两条语句,并且后面还有else语句,那么程序会怎么执行? 在Dev C++中输入如下代码,进行编译 #include "stdio.h" int main() { int a=0; scanf("%d",&a); if(a>0) a+=1; printf("a=%d",a); else print(&

C语言程序设计(翁恺)--第二周课件中的两个遗留点

看完课件,发现其中有几个点是老师上课没点破的,或者是留到讨论区的,自己想了想答案,总结一下这些问题 第二周:计算 1.关于const的描述中提到:“如果试图对常量做修改,把它放在赋值运算符的左边,就会被编译器发现,指出为一个错误(C99!)”,那么编译器会如何报错呢? 在Dev C++中输入如下简单的代码,进行编译 #include "stdio.h" int main() { const int a=0; a=10; printf("a=%d",a); retur

中国大学MOOC 哈工大数据库系统 第8讲模拟练习题答案

完整 中国大学MOOC 哈工大数据库系统 第8讲模拟练习题答案.pdf, 点我下载,进入下载页面点击普通下载 SQL语言的GRANT和REVOKE语句主要是用来维护数据库的_________. A.安全性 B.完整性 C.可靠性 D.一致性 正确答案:A你选对了 2安全性控制的防范对象是_________,防止他们对数据库数据的存取. A.非法非授权用户 B.不符合语义的数据 C.不正确的数据 D.不符合约束的数据 正确答案:A你选对了 原文地址:https://www.cnblogs.com/

Python网络爬虫与信息提取(中国大学mooc)

目录 目录 Python网络爬虫与信息提取 淘宝商品比价定向爬虫 目标获取淘宝搜索页面的信息 理解淘宝的搜索接口翻页的处理 技术路线requests-refootnote 代码如下 股票数据定向爬虫 列表内容 爬取网站原则 代码如下 代码优化 Python网络爬虫与信息提取 淘宝商品比价定向爬虫 股票数据定向爬虫 1. 淘宝商品比价定向爬虫 功能描述 目标:获取淘宝搜索页面的信息 理解:淘宝的搜索接口翻页的处理 技术路线:requests-re[^footnote]. 代码如下: #CrowTa

网易云课堂_C语言程序设计进阶_第一周:数据类型:整数类型、浮点类型、枚举类型

C语言程序设计进阶_第一周:数据类型:整数类型.浮点类型.枚举类型 1.0数据类型 1.1整数类型 1.2浮点类型 1.3逻辑类型 1.4类型转换和条件运算 1.0数据类型 1 整数 char(%c), short, int(%d), long(%ld), long long(C99) 2 浮点数 float(%f), double(%lf), long double(C99) 3 逻辑 bool(C99) 4 指针 5 自定义类型 所表达的数的范围:char<short<int<flo

使用selenium + chrome爬取中国大学Mooc网的计算机学科的所有课程链接

目的:使用selenium + chrome爬取中国大学Mooc网计算机学科的所有的课程链接列表 思路:找到每个分页的节点属性为class="m-course-list" 的div元素,再找到该元素下面的类属性为class = "u-clist f-bg f-cb f-pr j-href ga-click"的div元素的属性data-href的值,使用xpath获取. 难点:在网页源码里面,是看不到相关的课程链接信息,点击分页,发现地址栏的url一直都在变,但改变u

中国大学MOOC | C语言程序设计入门 第8周编程练习 翁恺

1 单词长度(4分) 题目内容: 你的程序要读入一行文本,其中以空格分隔为若干个单词,以‘.’结束.你要输出这行文本中每个单词的长度.这里的单词与语言无关,可以包括各种符号,比如“it's”算一个单词,长度为4.注意,行中可能出现连续的空格. 输入格式: 输入在一行中给出一行文本,以‘.’结束,结尾的句号不能计算在最后一个单词的长度内. 输出格式: 在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格. 输入样例: It's great to see you here

中国大学mooc程序设计入门——C语言:第三周测验

1.奇偶个数(5分) 题目内容: 你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据.程序输出读到的数据中的奇数和偶数的个数. 输入格式: 一系列正整数,整数的范围是(0,100000).如果输入-1则表示输入结束. 输出格式: 两个整数,第一个整数表示读入数据中的奇数的个数,第二个整数表示读入数据中的偶数的个数.两个整数之间以空格分隔. 输入样例: 9 3 4 2 5 7 -1 输出样例: 4 2 时间限制:500ms内存限制:32000kb 参考代码: 1 #inc

网易云课堂_Java语言程序设计进阶_第1周 类和对象_1分数

第1周编程题 查看帮助 返回 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系统将取其中的最高分作为最终成绩. 第1周编程题.我们在题目说明中给出了一部分代码,你需要在这部分代码的基础上,按照题目说明编写代码,然后将两部分代码一起提交. 依照学术诚信条款,我保证此作业是本人独立完成的. 1 分数(10分) 题目内容: 设计一个表示分数的类Fraction.这个类用两个int类型的变量分别表示分子和分母. 这个类