本文介绍: 但是,sizeof 和 strlen() 函数的功能并不相同,strlen() 函数才是专门用来统计字符串长度,而 sizeof 不是。sizeof 统计出的字符串长度比 strlen() 函数的统计值大 1。因为 sizeof 统计了字符串结尾的 ‘strlen() 函数从字符串的开头位置依次向后计数,直到遇见 ‘C语言 strlen 函数用来求字符串的长度(包含多少个字符)。’,然后返回计时器的值。3593 蓝桥杯 查找最大元素 简单。’,而 strlen() 函数没有。头文件:string.h。
3593 蓝桥杯 查找最大元素 简单
// C风格解法1,通过率100%,多组数据处理样式
//str = "abcdefgfedcba"
//abcdefg(max)fedcba
//str = "xxxxx"
//x(max)x(max)x(max)x(max)x(max)
#include<bits/stdc++.h>
const int N = 1e2 + 10;
char str[N];
void solve(){
scanf("%s", str); // 读入字符串 str
int n = (int) strlen(str);
// strlen(str) 求从 str 这个地址出发到下一个 '' 的位置所经过的长度,
// 实际上可以理解为字符串长度,O(|str|)
char mx = 0; // 去求最大字母
for(int i = 0; i < n; i++){
mx = std::max(mx, str[i]); // 循环求最大字母
}
for(int i = 0; i < n; i++){
printf("%c", str[i]);
if(str[i] == mx){ // 每当遇到最大字母时,立刻输出(max)
printf("%s","(max)");
}
}
printf("n");
}
int main(){
int T; scanf("%d", &T); // 输入测试组数
while(T--){ // while(T > 0){T--;...}
solve();
}
return 0;
}
C语言 strlen 函数用来求字符串的长度(包含多少个字符)。
strlen() 函数从字符串的开头位置依次向后计数,直到遇见 ‘‘,然后返回计时器的值。最终统计的字符串长度不包括 ‘
‘。
头文件:string.h
char str[] = “http://c.biancheng.net”;
运行结果为:
sizeof = 23
strlen = 22
sizeof 统计出的字符串长度比 strlen() 函数的统计值大 1。因为 sizeof 统计了字符串结尾的 ‘‘,而 strlen() 函数没有。
但是,sizeof 和 strlen() 函数的功能并不相同,strlen() 函数才是专门用来统计字符串长度,而 sizeof 不是。
// C++风格解法2,通过率100%,多组数据处理样式
//str = "abcdefgfedcba"
//abcdefg(max)fedcba
//str = "xxxxx"
//x(max)x(max)x(max)x(max)x(max)
#include<bits/stdc++.h>
void solve(){
std::string s; std::cin >> s; // 不建议使用getline,建议使用cin
//getline 一般会把第一行剩余的换行符等信息读入,导致少读一次
int n = (int) s.size(); // O(1)
char mx = 0; // 求最大字母
for(int i = 0; i < n; i++){
mx = std::max(mx, s[i]); // 循环求最大字母
}
for(int i = 0; i < n; i++){
std::cout << s[i];
if(s[i] == mx){ // 每当遇到最大字母,输出(max)
std::cout << "(max)";
}
}
std::cout << "n";
}
int main(){
std::ios::sync_with_stdio(false);std::cin.tie(nullptr);
std::cout.tie(nullptr);
int T; std::cin >> T; // 输入测试组数
while(T--){ // while(T > 0){T--;...}
solve();
}
return 0;
}
// 使用getline
/*
2
ab
c
2'n'ab'n'c'n'
*/
// std::cin >> T,此时T = 2,输入为'n'ab'n'c'n'
// 第一个 getline(std::cin, s) ,s = "",剩余输入为 ab'n'c'n'
// 第二个 getline(std::cin, s) ,s ="ab",剩余输入为 c'n'
reference:
char字符对应ASCII码表0-255(全)_char字符对应的ascii码值-CSDN博客
原文地址:https://blog.csdn.net/F87523399332578_/article/details/135973763
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_66033.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。