Home » C programming language

Strings - Find output programs in C (Set 1)

String is the set of characters terminated by NULL, it is also known as character array.

This section contains programs with the output and explanation based on C programming language strings.

Predict the output of following programs.

Program - 1

#include <stdio.h>
int main()
{
	printf("%s\n",4+"Hello world");
	printf("%s\n","Hello world"+4);
	return 0;
}

Output

o world
o world

Explanation

Both 4+"Hello world" and "Hello world"+4 will print the string from 4th index.


Program - 2

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

int main()
{
	char str[]="Hello";
	
	str[strlen(str)+1]='#';
	printf("str= %s\n",str);
		
	return 0;
}

Output

str= Hello

Explanation

In the variable str, "Hello" stored at following indexes
str[0]: 'H'
str[1]: 'e'
str[2]: 'l'
str[3]: 'l'
str[4]: 'o'
str[5]: '\0'
strlen(str)+1 will return 6, then character '#' will be stored at str[6].
Since printf, prints characters of the string till NULL, it will not print '#' as it exists after the NULL. Thus, the output will be "str= Hello".


Program - 3

#include <stdio.h>

int main()
{
	char str[]={0x41,0x42,0x43,0x20,0x44,0x00};
	printf("str= %s\n",str);		
	return 0;
}

Output

str= ABC D

Explanation

Here, str is initializing with with the hexadecimal values of the character, these are the characters which are being initialized:

0x41 (A), 0x42 (B), 0x42 (C), 0x20 (SPACE), 0x4D (D)


Program - 4

#include <stdio.h>

int main()
{
	char str[]="Hello";
	char *ptr=str;
	
	while(*ptr!='\0')
		printf("%c",++*ptr++);
	
	printf("\n");
		
	return 0;
}

Output

str= Ifmmp

Explanation

*ptr will return the character pointed by the pointer; initially it will return character stored at first byte, which will be checked with NULL.
++*ptr++ will evaluate as:
++*ptr: it will return the character and print next character (due to increment operator ++*ptr)
ptr++: it will point the next index


Program - 5

#include <stdio.h>

int main()
{
    char str[5]={0},loop=0;
    
    while(loop<5)
        printf("%02X ",str[loop++]);
    printf("\n");
	
	return 0;
}

Output

00 00 00 00 00

Explanation

Here, str is initialized with 0 (that is equivalent to NULL, all 5 elements of the character array witll be initialized with it), and %02X will print the value of character array (str) in 2 bytes padded hexadecimal code, thus the output will be "00 00 00 00 00".




ANY DOUBT? WRITE HERE...




© https://www.includehelp.com (2015-2018), Some rights reserved.




close Like other websites, this site uses cookies to deliver relevant ads based on your interest, by using our website, you acknowledge that you have read our privacy policy.