C Programming - Strings - Discussion
Discussion Forum : Strings - Find Output of Program (Q.No. 2)
2.
What will be the output of the program ?
#include<stdio.h>
int main()
{
char p[] = "%d\n";
p[1] = 'c';
printf(p, 65);
return 0;
}
Answer: Option
Explanation:
Step 1: char p[] = "%d\n"; The variable p is declared as an array of characters and initialized with string "%d".
Step 2: p[1] = 'c'; Here, we overwrite the second element of array p by 'c'. So array p becomes "%c".
Step 3: printf(p, 65); becomes printf("%c", 65);
Therefore it prints the ASCII value of 65. The output is 'A'.
Discussion:
12 comments Page 1 of 2.
John said:
1 decade ago
@Rishi.
char p[] is an array that having each array value.
p[0]=%
p[1]=d
p[2]=\
p[3]=n
then p[1]=d=c and printf("%d\n",65);
printf will change to printf("%c\n",65);
Now printf can print only character value(as of %c) finally print ASCII value of 65=A.
char p[] is an array that having each array value.
p[0]=%
p[1]=d
p[2]=\
p[3]=n
then p[1]=d=c and printf("%d\n",65);
printf will change to printf("%c\n",65);
Now printf can print only character value(as of %c) finally print ASCII value of 65=A.
(3)
Rishi said:
1 decade ago
How p becomes %c in the last printf statement?
Karthik said:
1 decade ago
Is it possible to change content of char ?
In above program p[1] = d.
p[1] = c has been changed.
If is it possible what is use strcpy() function ?
In above program p[1] = d.
p[1] = c has been changed.
If is it possible what is use strcpy() function ?
Megha said:
1 decade ago
/ & n is not a character in string array.
Xcoder said:
1 decade ago
@Karthik.
I think at a time we can change one value store in specific location.
But by using strcpy() can replace whole string;.
I think at a time we can change one value store in specific location.
But by using strcpy() can replace whole string;.
Anu Sri said:
1 decade ago
How can array 'p' become "%c" ?
Siri said:
10 years ago
char p[] contains a string literal. How can we change the value in it?
PRAMOD KUMAR said:
9 years ago
ASCII table remember.
Hassan said:
8 years ago
But what about "\n" why that's not elements of the array?
Monish Dadwal said:
8 years ago
It is an array so it is stored in stack section, in case you are saying string literal then you need to give it as a character pointer since character pointer gets its place in string literal which can't be modified.
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers