题解 | #复制部分字符串#

复制部分字符串

https://www.nowcoder.com/practice/8f5b923683b94e549880e3c8370e3e55

#include <stdio.h>
#include <string.h>
int main() {


    char str[30]={0};
   
    scanf("%s",str);
    int n=0;
    scanf("%d",&n);
    char *p=&str[n-1];
    for(int i=0;i<strlen(str)-n+1;i++)
    {
        printf("%c",*(p+i));//str指向h,h+6=o,因此h+(n-1)
    }
    return 0;

}

这个代码并不是我写的,拿出来解析一下。

char *p=&str[n-1];这里p的的开头指向第6个字母,即w;

for(int i=0;i<strlen(str)-n+1;i++)中的strlen(str)-n+1即10-6+1=5,

所以表现出来的情况是从w开始,+1,o,+1,r,+1,l,+1,d。

表现出来就是world

#c##复制部分字符串#
全部评论

相关推荐

轻絵梨花泪沾衣:南泵,大少爷驾到通通闪开
点赞 评论 收藏
分享
09-25 00:00
已编辑
电子科技大学 Java
球球与墩墩:这不是前端常考的对象扁平化吗,面试官像是前端出来的 const flattern = (obj) => { const res = {}; const dfs = (curr, path) => { if(typeof curr === 'object' && curr !== null) { const isArray = Array.isArray(curr); for(let key in curr) { const newPath = path ? isArray ? `${path}[${key}]` : `${path}.${key}` : key; dfs(curr[key], newPath); } } else { res[path] = curr } } dfs(obj); return res; }
查看3道真题和解析
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务