Read String Characters Into a Char C++
String is an array of characters. In this guide, we learn how to declare strings, how to work with strings in C programming and how to use the pre-divers string handling functions.
We will see how to compare ii strings, concatenate strings, copy one string to another & perform various string manipulation operations. We can perform such operations using the pre-defined functions of "string.h" header file. In order to utilise these cord functions yous must include string.h file in your C program.
Cord Declaration
Method one:
char accost[]={'T', 'E', 'Ten', 'A', 'S', '\0'}; Method 2: The above string tin also exist defined equally –
char accost[]="TEXAS";
In the above declaration NULL character (\0) will automatically exist inserted at the end of the cord.
What is NULL Char "\0"?
'\0' represents the end of the string. Information technology is also referred as String terminator & Nix Grapheme.
String I/O in C programming
Read & write Strings in C using Printf() and Scanf() functions
#include <stdio.h> #include <string.h> int chief() { /* Cord Declaration*/ char nickname[20]; printf("Enter your Nick name:"); /* I am reading the input string and storing information technology in nickname * Assortment name solitary works as a base accost of array and then * we can use nickname instead of &nickname here */ scanf("%s", nickname); /*Displaying String*/ printf("%s",nickname); return 0; } Output:
Enter your Nick name:Negan Negan
Note: %due south format specifier is used for strings input/output
Read & Write Strings in C using gets() and puts() functions
#include <stdio.h> #include <string.h> int principal() { /* String Declaration*/ char nickname[20]; /* Console display using puts */ puts("Enter your Nick name:"); /*Input using gets*/ gets(nickname); puts(nickname); return 0; } C – String functions
C Cord role – strlen
Syntax:
size_t strlen(const char *str)
size_t represents unsigned curt
It returns the length of the string without including end character (terminating char '\0').
Case of strlen:
#include <stdio.h> #include <string.h> int main() { char str1[xx] = "BeginnersBook"; printf("Length of string str1: %d", strlen(str1)); return 0; } Output:
Length of string str1: 13
strlen vs sizeof
strlen returns y'all the length of the string stored in array, however sizeof returns the full allocated size assigned to the array. So if I consider the higher up example once more then the following statements would return the below values.
strlen(str1) returned value 13.
sizeof(str1) would return value 20 as the array size is 20 (run across the first argument in main function).
C String function – strnlen
Syntax:
size_t strnlen(const char *str, size_t maxlen)
size_t represents unsigned curt
It returns length of the string if it is less than the value specified for maxlen (maximum length) otherwise it returns maxlen value.
Example of strnlen:
#include <stdio.h> #include <cord.h> int chief() { char str1[20] = "BeginnersBook"; printf("Length of string str1 when maxlen is xxx: %d", strnlen(str1, 30)); printf("Length of string str1 when maxlen is ten: %d", strnlen(str1, 10)); return 0; } Output:
Length of string str1 when maxlen is 30: 13
Length of cord str1 when maxlen is x: 10
Have yous noticed the output of 2nd printf statement, even though the string length was xiii it returned but 10 because the maxlen was 10.
C String function – strcmp
int strcmp(const char *str1, const char *str2)
It compares the 2 strings and returns an integer value. If both the strings are aforementioned (equal) and so this function would return 0 otherwise it may return a negative or positive value based on the comparison.
If string1 < string2 OR string1 is a substring of string2 and then information technology would issue in a negative value. If string1 > string2 then it would render positive value.
If string1 == string2 then you would get 0(nix) when yous utilize this part for compare strings.
Example of strcmp:
#include <stdio.h> #include <string.h> int primary() { char s1[20] = "BeginnersBook"; char s2[20] = "BeginnersBook.COM"; if (strcmp(s1, s2) ==0) { printf("string ane and string 2 are equal"); }else { printf("string 1 and 2 are different"); } return 0; } Output:
string 1 and two are different
C String part – strncmp
int strncmp(const char *str1, const char *str2, size_t due north)
size_t is for unassigned short
It compares both the string till n characters or in other words information technology compares first northward characters of both the strings.
Case of strncmp:
#include <stdio.h> #include <string.h> int main() { char s1[20] = "BeginnersBook"; char s2[xx] = "BeginnersBook.COM"; /* beneath it is comparing first 8 characters of s1 and s2*/ if (strncmp(s1, s2, 8) ==0) { printf("string 1 and string two are equal"); }else { printf("string 1 and 2 are different"); } return 0; } Output:
string1 and string 2 are equal
C String role – strcat
char *strcat(char *str1, char *str2)
It concatenates 2 strings and returns the concatenated string.
Example of strcat:
#include <stdio.h> #include <string.h> int main() { char s1[10] = "Hello"; char s2[x] = "World"; strcat(s1,s2); printf("Output cord after concatenation: %s", s1); render 0; } Output:
Output string after concatenation: HelloWorld
C String function – strncat
char *strncat(char *str1, char *str2, int due north)
Information technology concatenates n characters of str2 to string str1. A terminator char ('\0') volition always be appended at the finish of the concatenated string.
Instance of strncat:
#include <stdio.h> #include <string.h> int main() { char s1[ten] = "Howdy"; char s2[10] = "World"; strncat(s1,s2, 3); printf("Concatenation using strncat: %s", s1); return 0; } Output:
Concatenation using strncat: HelloWor
C String function – strcpy
char *strcpy( char *str1, char *str2)
It copies the string str2 into string str1, including the stop character (terminator char '\0').
Example of strcpy:
#include <stdio.h> #include <string.h> int chief() { char s1[thirty] = "string 1"; char s2[xxx] = "string 2 : I'm gonna copied into s1"; /* this role has copied s2 into s1*/ strcpy(s1,s2); printf("String s1 is: %south", s1); return 0; } Output:
String s1 is: cord two: I'm gonna copied into s1
C Cord part – strncpy
char *strncpy( char *str1, char *str2, size_t n)
size_t is unassigned short and n is a number.
Case1: If length of str2 > n then it just copies first n characters of str2 into str1.
Case2: If length of str2 < n and so information technology copies all the characters of str2 into str1 and appends several terminator chars('\0') to accumulate the length of str1 to arrive n.
Instance of strncpy:
#include <stdio.h> #include <string.h> int primary() { char first[thirty] = "string 1"; char 2d[30] = "cord 2: I'm using strncpy now"; /* this role has copied first 10 chars of s2 into s1*/ strncpy(s1,s2, 12); printf("String s1 is: %s", s1); return 0; } Output:
String s1 is: string 2: I'm
C String function – strchr
char *strchr(char *str, int ch)
Information technology searches string str for character ch (you may be wondering that in in a higher place definition I have given data type of ch as int, don't worry I didn't brand any mistake it should be int only. The thing is when nosotros give whatsoever character while using strchr so it internally gets converted into integer for better searching.
Example of strchr:
#include <stdio.h> #include <string.h> int main() { char mystr[30] = "I'g an example of role strchr"; printf ("%s", strchr(mystr, 'f')); return 0; } Output:
f function strchr
C String function – Strrchr
char *strrchr(char *str, int ch)
It is similar to the role strchr, the only deviation is that it searches the string in reverse order, at present you would have understood why we accept extra r in strrchr, yep you guessed it right, it is for reverse only.
Now let'south accept the same in a higher place case:
#include <stdio.h> #include <string.h> int main() { char mystr[30] = "I'1000 an instance of function strchr"; printf ("%s", strrchr(mystr, 'f')); return 0; } Output:
function strchr
Why output is dissimilar than strchr? It is because it started searching from the end of the string and found the first 'f' in function instead of 'of'.
C String function – strstr
char *strstr(char *str, char *srch_term)
It is similar to strchr, except that it searches for cord srch_term instead of a single char.
Case of strstr:
#include <stdio.h> #include <cord.h> int main() { char inputstr[70] = "String Function in C at BeginnersBook.COM"; printf ("Output string is: %s", strstr(inputstr, 'Begi')); return 0; } Output:
Output string is: BeginnersBook.COM
You tin besides use this function in place of strchr as y'all are immune to give single char also in place of search_term string.
Source: https://beginnersbook.com/2014/01/c-strings-string-functions/
0 Response to "Read String Characters Into a Char C++"
Post a Comment