编写一个与strlen函数功能一样的函数,用于测试任一输入字符的长度

时间: 2023-03-24 20:03:03 浏览: 69
好的,我可以回答这个问题。以下是一个与strlen函数功能一样的函数: ``` int my_strlen(const char* str) { int len = ; while (*str != '\') { len++; str++; } return len; } ``` 这个函数接受一个指向字符数组的指针作为参数,并返回该数组中字符的数量。它使用一个while循环来遍历数组中的每个字符,直到遇到字符串的结尾标志'\'为止。在循环中,它递增一个计数器变量,以便在循环结束时返回字符串的长度。
相关问题

“回文”是一种顺序读和反序读都一样的字符串,例如:“121”“abcba” “ABCCBA”编写程序,判断任一字符串是否为回文

判断一个字符串是否为回文,可以通过比较字符串的首尾字符是否相同来实现。以下是一个示例程序的实现: ```c #include <stdio.h> #include <string.h> #include <ctype.h> int is_palindrome(char *str) { int i = 0; int j = strlen(str) - 1; while (i < j) { while (!isalnum(str[i]) && i < j) i++; // 跳过非字母或数字的字符 while (!isalnum(str[j]) && i < j) j--; if (tolower(str[i]) != tolower(str[j])) { // 判断首尾字符是否相同 return 0; } i++; j--; } return 1; } int main() { char str[100]; printf("请输入字符串:"); fgets(str, 100, stdin); // 从标准输入读取字符串 if (is_palindrome(str)) { printf("是回文字符串\n"); } else { printf("不是回文字符串\n"); } return 0; } ``` 在上面的代码中,我们定义了一个is_palindrome函数来判断输入的字符串是否为回文。函数的参数是一个字符指针str,指向输入的字符串。 在函数内部,我们使用两个指针变量i和j来分别指向字符串的首字符和尾字符。使用两个while循环分别跳过字符串中的非字母或数字的字符,并使用tolower函数将字母转换为小写字母进行比较。如果首尾字符不相同,则返回0;否则,继续遍历字符串。如果遍历完成后没有发现不同的字符,则返回1,表示字符串是回文的。 在main函数中,我们使用fgets函数从标准输入读取输入的字符串,并将其传递给is_palindrome函数进行判断。最后,我们根据函数的返回值打印出相应的提示信息。

现有一字符串char str[]=”congralutiaons”,请使用冒泡排序/选择排序法对其进行升序排序,输出排序后的结果。另有一字符 char ch=’d’,请将该字符顺序插入字符串str,并输出插入后的字符串。 现有一字符串 char str1[]=”SMUComputer”,主函数中输入另一个相同长度的测试字符串str2,要求编写一个函数int Differ(char s1[],char s2[]),比较str1和str2中不同字符的个数,并在主函数中输出结果。(要求不能使用全局变量,不能使用标准库函数) 假设幸运数字为4和7。若某整数的每一位都是4或者7,那么该整数即为幸运数。请编写一函数判断键盘输入的任一整数n是不是幸运数,是的话输出“YES”,否则输出“NO”。 定义一个结构体变量Box,包含成员:长、宽、高、体积。现有两个结构体变量 Box b1,b2;编写一个函数判断这个两个箱子是不是包含关系,是的话输出“Yes”。否则输出“NO”。包含关系的定义是:b1能够完全放进b2里,或者b2能够完全放进b1里。

好的,我会逐个回答你的问题。 1. 冒泡排序/选择排序法对字符串进行升序排序,并输出排序后的结果。 冒泡排序: ```c++ char str[] = "congralutiaons"; int n = strlen(str); for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { if (str[j] > str[j + 1]) { char temp = str[j]; str[j] = str[j + 1]; str[j + 1] = temp; } } } cout << str << endl; ``` 选择排序: ```c++ char str[] = "congralutiaons"; int n = strlen(str); for (int i = 0; i < n - 1; i++) { int minIndex = i; for (int j = i + 1; j < n; j++) { if (str[j] < str[minIndex]) { minIndex = j; } } char temp = str[i]; str[i] = str[minIndex]; str[minIndex] = temp; } cout << str << endl; ``` 2. 将字符顺序插入字符串,并输出插入后的字符串。 ```c++ char str[] = "congralutiaons"; char ch = 'd'; int n = strlen(str); for (int i = 0; i <= n; i++) { if (str[i] > ch) { for (int j = n; j > i; j--) { str[j] = str[j - 1]; } str[i] = ch; break; } } cout << str << endl; ``` 3. 比较两个字符串中不同字符的个数。 ```c++ int Differ(char s1[], char s2[]) { int count = 0; int n = strlen(s1); for (int i = 0; i < n; i++) { if (s1[i] != s2[i]) { count++; } } return count; } ``` 4. 判断一个整数是否为幸运数。 ```c++ bool isLucky(int n) { while (n > 0) { int digit = n % 10; if (digit != 4 && digit != 7) { return false; } n /= 10; } return true; } int main() { int n; cin >> n; if (isLucky(n)) { cout << "YES" << endl; } else { cout << "NO" << endl; } return 0; } ``` 5. 判断两个箱子是否为包含关系。 ```c++ struct Box { int length; int width; int height; int volume; }; bool isContained(Box b1, Box b2) { if (b1.volume > b2.volume) { Box temp = b1; b1 = b2; b2 = temp; } if (b1.length <= b2.length && b1.width <= b2.width && b1.height <= b2.height) { return true; } return false; } int main() { Box b1, b2; cin >> b1.length >> b1.width >> b1.height; cin >> b2.length >> b2.width >> b2.height; b1.volume = b1.length * b1.width * b1.height; b2.volume = b2.length * b2.width * b2.height; if (isContained(b1, b2)) { cout << "Yes" << endl; } else { cout << "No" << endl; } return 0; } ```

相关推荐

最新推荐

recommend-type

c/c++ 学习总结 初学者必备

23、编写gbk_strlen函数,计算含有汉字的字符串的长度,汉字作为一个字符处理;已知:汉字编码为双字节,其中 参数里涉及指针,就要考虑该指针是不是一个需要修改的量,如果是,则参数应采用指向指针的指针。 (C语言里...
recommend-type

Elasticsearch初识与简单案例.pdf

Elasticsearch是一个基于Lucene的分布式全文搜索引擎,提供灵活且高效的搜索和分析功能。通过HTTP请求和客户端库,用户可以索引和搜索文档,执行复杂查询,进行数据分析,并享受高亮显示等特性。其高级功能如复合查询、聚合分析、滚动搜索等,使其适用于各种数据处理和分析场景。Elasticsearch还具有强大的监控和日志功能,确保集群稳定运行。总之,Elasticsearch是企业级搜索和分析的理想选择。
recommend-type

Python基于LSTM模型对全国的空气质量数据进行可视化分析预测源代码

介绍 对全国2019年1月至2023年12月的空气质量数据进行分析,绘制时间序列图,展示每月/每季度的平均AQI变化趋势。绘制不同省份和城市的平均AQI热力图。分析不同污染物的浓度分布和趋势。绘制空气质量等级分布图。 需求说明 对空气质量数据进行数据分析,并使用LSTM模型进行预测。 安装教程 pip install jupyter pip install numpy pandas matplotlib seaborn 使用说明 在项目路径下打开终端输入jupyter notebook就行
recommend-type

百问网linux桌面GUI,基于LVGL 8.x。.zip

百问网linux桌面GUI,基于LVGL 8.x。
recommend-type

基于Vue开发的XMall商城前台页面 PC端.zip

基于Vue开发的XMall商城前台页面 PC端.zip
recommend-type

RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz

REALTEK 8188FTV 8188eus 8188etv linux驱动程序稳定版本, 支持AP,STA 以及AP+STA 共存模式。 稳定支持linux4.0以上内核。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

:YOLOv1目标检测算法:实时目标检测的先驱,开启计算机视觉新篇章

![:YOLOv1目标检测算法:实时目标检测的先驱,开启计算机视觉新篇章](https://img-blog.csdnimg.cn/img_convert/69b98e1a619b1bb3c59cf98f4e397cd2.png) # 1. 目标检测算法概述 目标检测算法是一种计算机视觉技术,用于识别和定位图像或视频中的对象。它在各种应用中至关重要,例如自动驾驶、视频监控和医疗诊断。 目标检测算法通常分为两类:两阶段算法和单阶段算法。两阶段算法,如 R-CNN 和 Fast R-CNN,首先生成候选区域,然后对每个区域进行分类和边界框回归。单阶段算法,如 YOLO 和 SSD,一次性执行检
recommend-type

设计算法实现将单链表中数据逆置后输出。用C语言代码

如下所示: ```c #include <stdio.h> #include <stdlib.h> // 定义单链表节点结构体 struct node { int data; struct node *next; }; // 定义单链表逆置函数 struct node* reverse(struct node *head) { struct node *prev = NULL; struct node *curr = head; struct node *next; while (curr != NULL) { next
recommend-type

c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf

校园超市商品信息管理系统课程设计旨在帮助学生深入理解程序设计的基础知识,同时锻炼他们的实际操作能力。通过设计和实现一个校园超市商品信息管理系统,学生掌握了如何利用计算机科学与技术知识解决实际问题的能力。在课程设计过程中,学生需要对超市商品和销售员的关系进行有效管理,使系统功能更全面、实用,从而提高用户体验和便利性。 学生在课程设计过程中展现了积极的学习态度和纪律,没有缺勤情况,演示过程流畅且作品具有很强的使用价值。设计报告完整详细,展现了对问题的深入思考和解决能力。在答辩环节中,学生能够自信地回答问题,展示出扎实的专业知识和逻辑思维能力。教师对学生的表现予以肯定,认为学生在课程设计中表现出色,值得称赞。 整个课程设计过程包括平时成绩、报告成绩和演示与答辩成绩三个部分,其中平时表现占比20%,报告成绩占比40%,演示与答辩成绩占比40%。通过这三个部分的综合评定,最终为学生总成绩提供参考。总评分以百分制计算,全面评估学生在课程设计中的各项表现,最终为学生提供综合评价和反馈意见。 通过校园超市商品信息管理系统课程设计,学生不仅提升了对程序设计基础知识的理解与应用能力,同时也增强了团队协作和沟通能力。这一过程旨在培养学生综合运用技术解决问题的能力,为其未来的专业发展打下坚实基础。学生在进行校园超市商品信息管理系统课程设计过程中,不仅获得了理论知识的提升,同时也锻炼了实践能力和创新思维,为其未来的职业发展奠定了坚实基础。 校园超市商品信息管理系统课程设计的目的在于促进学生对程序设计基础知识的深入理解与掌握,同时培养学生解决实际问题的能力。通过对系统功能和用户需求的全面考量,学生设计了一个实用、高效的校园超市商品信息管理系统,为用户提供了更便捷、更高效的管理和使用体验。 综上所述,校园超市商品信息管理系统课程设计是一项旨在提升学生综合能力和实践技能的重要教学活动。通过此次设计,学生不仅深化了对程序设计基础知识的理解,还培养了解决实际问题的能力和团队合作精神。这一过程将为学生未来的专业发展提供坚实基础,使其在实际工作中能够胜任更多挑战。