Каков вывод этой программы? и почему? - PullRequest
0 голосов
/ 06 июля 2019

Хотите, чтобы эта программа выводила "Digi", но почему она выводит "Dig) tal Bangladesh".

Может кто-нибудь объяснить?

#include<stdio.h>

int main(){

char str[120]="Digital Bangladesh";
int n;
n=strlen(str);
printf("%d \n",n);
str[4]="\0";
printf("%s",str);
return 0;
}

1 Ответ

2 голосов
/ 06 июля 2019

Я дал базовое объяснение в комментариях и немного улучшил ваш код (заменил "\0" на '\0' и включил string.h для strlen()).

#include <stdio.h>
#include <string.h>

int main() {
    char str[120] = "Digital Bangladesh";
    int n = strlen(str);  // can combine declaration and assignment into a single statement; 
                          // this will assign the actual length of string str to n
    printf("%d \n", n);
    str[4] = '\0';      // shouldn't be "\0" since anything in double quotes will be a string and not a character
                        // you are assigning 5th character (4th index + 1) of str to NULL ('\0') terminator character; 
                        // now str will have content "Digi"
    printf("%s", str);
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...