#include<stdio.h> #include<string.h> int main() { static char str1[] = "dills"; static char str2[20]; static char str3[] = "Daffo"; int i; i = strcmp(strcat(str3, strcpy(str2, str1)), "Daffodills"); printf("%d\n", i); return 0; }
#include<stdio.h> int main() { printf(5+"CuriousTab\n"); return 0; }
#include<stdio.h> int main() { char str = "CuriousTab"; printf("%s\n", str); return 0; }
To eliminate the error, we have to change the above line to
char *str = "CuriousTab"; (or) char str[] = "CuriousTab";
Then it prints "CuriousTab".
#include<stdio.h> int main() { char str1[] = "Hello"; char str2[10]; char *t, *s; s = str1; t = str2; while(*t=*s) *t++ = *s++; printf("%s\n", str2); return 0; }
#include<stdio.h> int main() { printf(5+"Good Morning\n"); return 0; }
Hence the output is "Morning"
#include<stdio.h> int main() { char p[] = "%d\n"; p[1] = 'c'; printf(p, 65); return 0; }
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'.
#include<stdio.h> int main() { char ch = 'A'; printf("%d, %d, %d", sizeof(ch), sizeof('A'), sizeof(3.14f)); return 0; }
Step 2:
printf("%d, %d, %d", sizeof(ch), sizeof('A'), sizeof(3.14));
The sizeof function returns the size of the given expression.
sizeof(ch) becomes sizeof(char). The size of char is 1 byte.
sizeof('A') becomes sizeof(65). The size of int is 4 bytes (as mentioned in the question).
sizeof(3.14f). The size of float is 4 bytes.
Hence the output of the program is 1, 4, 4
#include<stdio.h> int main() { char t; char *p1 = "India", *p2; p2=p1; p1 = "CURIOUSTAB"; printf("%s %s\n", p1, p2); return 0; }
Step 2: p2=p1; The value of p1 is assigned to variable p2. So p2 contains "India".
Step 3: p1 = "CURIOUSTAB"; The p1 is assigned with a string "CURIOUSTAB"
Step 4: printf("%s %s\n", p1, p2); It prints the value of p1 and p2.
Hence the output of the program is "CURIOUSTAB India".
#include<stdio.h> int main() { char str[] = "India\0CURIOUSTAB\0"; printf("%d\n", sizeof(str)); return 0; }
1. sizeof("") returns 1 (1*).
2. sizeof("India") returns 6 (5 + 1*).
3. sizeof("CURIOUSTAB") returns 4 (3 + 1*).
4. sizeof("India\0CURIOUSTAB") returns 10 (5 + 1 + 3 + 1*).
Here '\0' is considered as 1 char by sizeof() function.
5. sizeof("India\0CURIOUSTAB\0") returns 11 (5 + 1 + 3 + 1 + 1*).
Here '\0' is considered as 1 char by sizeof() function.
#include<stdio.h> int main() { int i; char a[] = "\0"; if(printf("%s", a)) printf("The string is empty\n"); else printf("The string is not empty\n"); return 0; }
Step 1: char a[] = "\0"; The variable a is declared as an array of characters and it initialized with "\0". It denotes that the string is empty.
Step 2: if(printf("%s", a)) The printf() statement does not print anything, so it returns '0'(zero). Hence the if condition is failed.
In the else part it prints "The string is not empty".
#include<stdio.h> #include<string.h> int main() { printf("%d\n", strlen("123456")); return 0; }
Therefore, strlen("123456") returns 6.
Hence the output of the program is "6".
Comments
There are no comments.Copyright ©CuriousTab. All rights reserved.