在c中比较没有Strcmp的两个字符串的简单方法

时间:2017-03-01 16:30:47

标签: c turbo-c

我需要比较用户在字符串2字符串中输入值而不使用Inbuilt函数或c中的(strcmp)。我使用其他语言使用第一个程序它不工作所以我创建了第二个在c中工作,有没有更好的方法没有while循环:

这个问题将帮助那些掌握一些基本知识的人和有良好的理解知识,如javascript或任何其他oops语言程序员突然有兴趣学习c编程概念c字符串操作如何与其他语言不同,并希望使用字符串不使用c中的任何内置函数进行操作。

    #include<stdio.h>
    void main()
    {
        char ch[80];
        printf("Enter Your name:" );
        if(scanf("%s",ch) =="hello")
        {
            printf("hello");
        }
        else if(scanf("%s",ch) =="saythanku")
        {
            printf("saythanku");
        }
        else 
        {
            printf("none");
        }
    }


Working:


#include<stdio.h>
void main()
{

printf("enter your name");
char ch[80];

scanf("%s",ch);
int a=compare(ch,"hello");

if(a==0)
{
    printf("hello");
}
else
{
    printf("not hello");
}
}
int compare(char a[], char b[])
{
   int c = 0;

   while( a[c] == b[c] )
   {
      if( a[c] == '\0' || b[c] == '\0' )
         break;
       c++;
   }
   if( a[c] == '\0' && b[c] == '\0' )
      return 0;
   else
      return -1;
}

简单的任何其他比较

1 个答案:

答案 0 :(得分:1)

正如PaulMcKenzie所提到的,似乎你将其他语言的概念直接应用于c编程语言,主要是通过猜测。如果您没有书籍,请至少使用谷歌查找一些教程。例如,我输入了“c strings introduction”并获得了这个link,这解释了你目前遇到的很多问题。

以下内容无法回答您的问题,甚至无法解决您的作业,但也许它会为您提供足够的提示。

c中的“字符串”是一个字符数组,以0结尾(通常写为'\0'

字符串文字用双引号括起来,即"hello"(不是'hello')。

索引可以访问字符串的单个字符,例如char c = ch[0]char c = ch[5]的{​​{1}}。

循环遍历字符串字符并查找int i=3; char c = ch[i]的循环可能如下所示:

A

这不是一个答案;只是我也是初学者(尽管在C以外的其他领域);和初学者应该帮助初学者:-) 玩得开心学习C,使用谷歌和好书,并注意它需要一些时间。