0

What's happening here?

Please explain the output of my code below. Thank you :))) https://code.sololearn.com/c7b3G9YDAfDV/?ref=app

17th Aug 2021, 2:00 PM
Rishi
Rishi - avatar
4 odpowiedzi
+ 7
1) here's an ascii table which you can look https://en.cppreference.com/w/cpp/language/ascii as you can see null termination character has 0 as ascii code and space is 32nd.. 2) "\0" is just evaluated as a single character not as two different things.. as its escape sequence .. all escape sequence (ascii ones) start with \ .. look at this : https://www.google.com/amp/s/www.geeksforgeeks.org/escape-sequences-c/amp/
17th Aug 2021, 2:22 PM
Prashanth Kumar
Prashanth Kumar - avatar
+ 6
Leme explain line by line char str[30]="HELLO WORLD 0 ZERO \0 HI"; here we have a char array which is actually terminated after ZERO .. by null termination escape sequence .. and '\0' is same ad having 0 at that index.. int index=0; we start at index 0 while (str[index]!=0) // run the loop untill a 0 is encountered ( '\0' is also 0) { if(isupper(str[index])) { printf("%c",str[index]); // print the character only if its upper case } ++index; // keep on going }
17th Aug 2021, 2:08 PM
Prashanth Kumar
Prashanth Kumar - avatar
+ 1
Martin Taylor ooh yes, I searched the internet for ASCII value 0 and it said NULL. I mistakenly took it for space, now I thought space is something, NULL is nothing. Am I right??
18th Aug 2021, 1:21 AM
Rishi
Rishi - avatar
0
Prashanth Kumar I have some clarifications to be made here. 1)Why isn't the loop terminated when encountering a space(because the ASCII value of a space is 0 right?). 2) '\' and '0' are 2 unique characters right? How is '\0' a single character??
17th Aug 2021, 2:16 PM
Rishi
Rishi - avatar