学英语
截取字符串
https://www.nowcoder.com/practice/a30bbc1a0aca4c27b86dd88868de4a4a?tpId=37&&tqId=21269&rp=1&ru=/ta/huawei&qru=/ta/huawei/question-ranking
题意:多组输入,输入一个字符串,再输入一个截取的字符串的长度k,输出截取后的字符串,即字符串的前k个字符
1.循环输出
由题意得我们只需要截取的前k个字符,那我们循环k次,输出要的字符即可
#include<bits/stdc++.h> using namespace std; int main() { char str[105]; int k; while(scanf("%s",str) != EOF) { scanf("%d",&k); for(int i = 0 ; i < k ; i++) { printf("%c",str[i]); } printf("\n"); } return 0; }
2.利用字符串末尾是\0
因为C/C++里面字符串的定义是以\0结尾,当以字符串输出的时候,检查到第一个\0后,后面的字符将不会输出,那我们可以直接将第k+1个字符置为\0,然后再以字符串输出即可
#include<bits/stdc++.h> using namespace std; int main() { char str[105]; int k; while(scanf("%s",str) != EOF) { scanf("%d",&k); str[k] = '\0'; printf("%s\n", str); } return 0; }