簡體   English   中英

C 中的子字符串(數組中的剩余部分會發生什么)

[英]Substring in C (what will happen to the remaining in array)

我已經給出了一個任務來為 C 中的給定輸入生成一個子字符串。代碼如下。

#include<stdio.h>
int main(){
    char a[1000];
    char *sub;
    int startFrom = 0;
    int endAt = 0;

    printf("Enter the String: ");
    scanf("%s", a);
    printf("Start From? ");
    scanf("%d", &startFrom);
    printf("End At? ");
    scanf("%d", &endAt);

    sub = &a[startFrom];
    a[endAt] = '\0';
    printf("%s\n", sub);
    return 0;
}

然而,代碼工作正常,但是數組中的其余字符會發生什么?

數組的其余部分保持不變; 只是您將數組中的一個字符更改為 null('\\0')。 因此,如果您嘗試在a[endAt]字符之后(或之前)訪問任何其他字符,您將能夠這樣做。

在 Ideone.com 上查看一些額外的代碼

但是,正如您所看到的,當您嘗試打印原始數組時,它只會打印到第一個 '\\0' 字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM