关于输入c风格的字符串数组char[]中的小细节问题
作者:
Dionysus.
,
2022-04-01 16:20:50
,
所有人可见
,
阅读 158
char s[4];cin >> s + 1;
//则s[0]置为空,那么算字符串长度只可strlen(s + 1)这样来算,如果,strlen(s) - 1这样来计算,则会算出一个特别特别奇怪的数字
#include<set>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
const int N = 2e5 + 10;
#define ios_fast ios::sync_with_stdio(false)
#define fer(i,a,b) for(int i = a;i <= b;i += 2 )
typedef long long ll;
void solve()
{
int ans = 0;
char s[N];cin >> s + 1;
fer(i,1,strlen(s + 1))
{
if(i + 1 > strlen(s + 1))
{
ans ++;
continue;
}
if(s[i] != s[i + 1])ans ++;
}
cout << strlen(s) - 1 << " " << strlen(s + 1) << endl;
cout << ans << '\n' << s[0] << endl;
if(s[0] == '\n')cout << "lll" << endl;
}
int main()
{
ios_fast;int t;cin >> t;
while( t -- )
{
solve();
}
return 0;
}
//aabbdabdccc ->
//这里输入一个正常的字符串,则会输出一个很奇怪的数字,并且循环只会循环到输出第一次s[0]为止