C/String/String Compare
Содержание
Compare some characters of two strings: how to use strncmp
#include <stdio.h>
#include <string.h>
int main ()
{
char str[][5] = { "CS115" , "CS334" , "CS445" , "CS335" , "CS889" };
int n;
printf ("Looking for a class...\n");
for (n=0 ; n < 5 ; n++)
if (strncmp (str[n],"CS33*",1) == 0)
{
printf ("found %s\n",str[n]);
}
return 0;
}
Compare strings: strcmp
#include <stdio.h>
#include <string.h>
int main()
{
char word1[20];
char word2[20];
printf("\n first word:\n1: ");
scanf("%s", word1); /* Read the first word */
printf(" second word:\n 2: ");
scanf("%s", word2); /* Read the second word */
/* Compare the two words */
if(strcmp(word1,word2) == 0)
printf("identical words");
else
printf("%s comes before %s", (strcmp(word1, word2) > 0) ? word2 : word1, (strcmp(word1, word2) < 0) ? word2 : word1);
}
Compare two strings: how to use strcmp
#include <stdio.h>
#include <string.h>
int main ()
{
char szKey[] = "Apple";
char szInput[80];
do {
printf ("Which is my favourite computer? ");
gets (szInput);
} while (strcmp (szKey,szInput) != 0);
printf ("Correct answer!\n");
return 0;
}
Our own string compare function
#include <stdlib.h>
#include <ctype.h>
#include <stdio.h>
int comp(const void *ch, const void *s);
int main(void)
{
char *alpha = "abcdefghijklmnopqrstuvwxyz";
char ch;
char *p;
printf("Enter a character: ");
ch = getchar();
ch = tolower(ch);
p = (char *) bsearch(&ch, alpha, 26, 1, comp);
if(p)
printf(" %c is in alphabet\n", *p);
else
printf("is not in alphabet\n");
return 0;
}
/* Compare two characters. */
int comp(const void *ch, const void *s)
{
return *(char *)ch - *(char *)s;
}
String compare: how to use strncmp
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
if(argc!=3) {
printf("Incorrect number of arguments.");
exit(1);
}
if(!strncmp(argv[1], argv[2], 8))
printf("The strings are the same.\n");
return 0;
}
Testing characters in a string: is digit and is alpha
#include <stdio.h>
#include <ctype.h>
void main() {
char buffer[80];
int i = 0;
int num_letters = 0;
int num_digits = 0;
printf("\n string with char and digits:\n");
gets(buffer); /* Read a string into buffer */
while(buffer[i] != "\0") {
if(isalpha(buffer[i]))
num_letters++; /* Increment letter count */
if(isdigit(buffer[i++]))
num_digits++; /* Increment digit count */
}
printf("\n The string contained %d letters and %d digits.\n",
num_letters, num_digits);
}