How to Compare Two Strings in C Programming
The string that is smaller is lexicographically smaller (it starts with letters that are before the starting letters of the other string in a dictionary).
1.Include the string library in your program. This library contains a lot of useful functions used when working with strings, including one that compares them. Place the following code at the top of the program, with the other includes.
include <string.h>
2.Declare the string variables. Those will be the strings you will compare. Note that strings in C are declared as arrays of characters, not as a special string type.
char string1[limit], string2[limit]; // Replace "limit" with the maximum length of the strings
3.Decide how many characters you wish to compare.
- The more you compare, the higher precision you will achieve (For example, if the strings were "Hell" and "Hello" and you compared four characters, they would appear the same).
- If you compare a lot of characters, the comparison will be slower.
- There is no need to make this number greater than the strings' lengths (there are no characters to compare after their end).
4.Create a variable that contains the number of characters to compare.
int compareLimit = 100;// Here, the limit is 100. However, you may change it to satisfy your needs.
5.Initialize the strings. You may assign the value manually, read it from the input, read it from a file...
6.Compare the strings. The comparison is done using the strncmp() function, and the returned type is an integer.
int result = strncmp(string1, string2, compareLimit);
7.Examine the result. If it is positive, the first string is larger. If it is negative, the second is larger. If it is 0, they are equal.
if(result > 0)
printf("string1 > string2");else if(result < 0)printf("string2 > string1");
elseprintf("string1 == string2");
Simple Code
A program that answers simple questions ("What is your name?", "How are you?", "What do you think of 9FAQ?")
#include <stdio.h> #include <string.h> int main() { printf("Hello! Ask me a question!\n"); while(1) { char str[100]; scanf("%s",&str); int res = strncmp(str, "What is your name?", 100); if(res == 0) printf("I'm a program, I don't have a name!\n"); res = strncmp(str, "How are you?", 100); if(res == 0) printf("Fine.\n"); res = strncmp(str, "What do you think of wikiHow?", 100); if(res == 0) printf("It's great!"); } }
0 comments:
Post a Comment