标签: strcmp

什么"传递strcmp的参数2使得指针来自整数而没有强制转换"C中的错误是什么意思?

我正在编译我的C代码,并得到两个错误:

警告:传递strcmp的参数2使得指针来自整数而没有强制转换

警告:注意:预期的const char*但参数的类型为int

我的主要是:

int main(int argc, char *argv[])
{
    //check to make sure that the command line arguments are valid  
    if(argc!=3) 
    {
        printf("invalid function call try again\n");
    }

    //else to choose the proper command
    else
    {
        //reverse routine A         
        if(strcmp(argv[2],'a'||'A')==0) //line 138
        {
            reva(argv[1]);
        }
        //reverse routine B
        else if(strcmp(argv[2],'b'||'B')==0)  //line 143
        {
            revb(argv[1]);
        }
        //reverse routine C
        else if(strcmp(argv[2],'c'||'C')==0)  //line 148
        {
            revc(argv[1]);
        }
        //unacceptable command line argumant
        else
        {
            printf("unacceptable command line argument for reverse …
Run Code Online (Sandbox Code Playgroud)

c strcmp

1
推荐指数
1
解决办法
2万
查看次数

C18 Microchip编译器和strcmp功能

我想比较两个字符串:

第一个字符串在我的main上面声明:

char _newState[] = "AVAILABLE";
Run Code Online (Sandbox Code Playgroud)

当我想与const字符串比较时,我把这行:

if(strcmppgm2ram((const char *) "AVAILABLE", _newState ) == 0){
    code:
}
Run Code Online (Sandbox Code Playgroud)

函数永远不会返回零,什么是解决方案和正确的类型转换?strcmp是同样的问题!

c string strcmp mplab-c18

1
推荐指数
1
解决办法
2071
查看次数

字符串比较不在C中工作

我在我的程序中的函数是应该采取莫尔斯电码输入,把它比作一个字符串数组,并从相应的字符串返回一个字母一旦找到匹配的莫尔斯.我终于设法让它在没有崩溃的情况下运行,但现在它不断返回错误的字母.例如...... ---应该返回sos但是我得到了amb.我尝试通过打印出索引号,莫尔斯代码字符串和字母来测试它,所有这些都匹配起来,所以我认为问题在于字符串比较.

这是代码:

void morsetotext(char mor[])
{
     char alpha[]={"abcdefghijklmnopqrstuvwxyz1234567890 "};
     char *morse[] = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", 
     "..", ".---","-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", 
     "...", "-", "..-", "...-",".--", "-..-", "-.--", "--.","-----", ".----", 
     "..---", "...--", "....-",".....", "-....", "--...", "---..", "----." "/ "};
     char letter[8];
     char convert[250];
     int con_count=0;
     int let_count=0;
     int count=0;
     int index=0;
     int length=strlen(mor);

     while (count<length)
     {
           for(let_count=0; let_count<8 && mor[count]!=' '; let_count++)
           {
                            letter[let_count]=mor[count];
                            count++;
           }

           letter[let_count+1]='\0';

           index=0;
           while (strcmp (letter, morse[index])!=1) …
Run Code Online (Sandbox Code Playgroud)

c string strcmp

1
推荐指数
2
解决办法
651
查看次数

strcmp与字符串和数组的混淆

我有这个代码试图将莫尔斯代码翻译成字母:

#include <stdio.h>
#include <string.h>

#define BSIZE 15

char *morseToLetter(char *);


int main() {
    char *morseCode = ".... . .-.. .-.. --- / -.. .- .. .-.. -.-- / .--. .-. --- --. .-. .- -- -- . .-. / --. --- --- -.. / .-.. ..- -.-. -.- / --- -. / - .... . / -.-. .... .- .-.. .-.. . -. --. . ... / - --- -.. .- -.--";    
    char buffer[BSIZE] = { 0 };
    int …
Run Code Online (Sandbox Code Playgroud)

c morse-code strcmp

1
推荐指数
1
解决办法
168
查看次数

使用strcmp比较两个字符串的问题

我想比较2个字符串但是当我做一个strcmp函数时,它告诉我:

'strcmp' : cannot convert parameter 1 from 'std::string'
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

这是我的代码:

int verif_file(void)
{
    string ligne;
    string ligne_or;

    ifstream verif("rasphone");
    ifstream original("rasphone.pbk");
    while (strcmp(ligne, "[SynCommunity]") != 0 &&
        (getline(verif, ligne) && getline(original, ligne_or)));    
    while (getline(verif, ligne) && getline(original, ligne_or))
    {
        if (strcmp(ligne, ligne_or) != 0)
            return (-1);
    }

    return (0);
}
Run Code Online (Sandbox Code Playgroud)

c++ string comparison string-comparison strcmp

1
推荐指数
4
解决办法
1640
查看次数

C中的strcmp返回1而不是0

我在C中编写了以下代码.

#include <stdio.h>
#include <string.h>
int main(void) {
    char str1[4] = "abcd";
    char str2[4] = "abcd";
    printf("%d\n",strcmp(str1,str2));

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我期望返回值为0(因为我被教导strcmp函数为相等的字符串返回0).但它打印1!

Success  time: 0 memory: 2248 signal:0
1
Run Code Online (Sandbox Code Playgroud)

这是一个错误吗?还是我错过了什么?

c string comparison string-comparison strcmp

1
推荐指数
1
解决办法
1088
查看次数

C:计数字母,直到插入特定条目

我在C上有点生疏了.我正在学校任务,要求我创建一个程序,获取用户输入,然后打印输出.如果字符数高于50,则不打印任何内容并重新启用它们.退出不应打印计数(在本例中为4).

这是我到目前为止:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main ()
{ /*Start of main*/

printf("Type any word you'd like <= 50 characters.\nType quit to exit:\n");

char word[50];
int wordLength = 0;

    while (strcmp(word, "quit") != 0)
    {/*open of while loop (strcmp ... != 0)*/

    scanf("%s\n", word);
    wordLength = strlen(word);
    if (wordLength > 50)
        {
            printf("Try again, >= 50 characters!:\n");
            scanf("%s", word);
            wordLength = strlen(word);
        }
    printf("%d\n", wordLength);

    }/*End of while loop (strcmp... != 0)*/

return 0;
}/*End of main*/ …
Run Code Online (Sandbox Code Playgroud)

c strlen strcmp

1
推荐指数
1
解决办法
147
查看次数

Strcmp()函数没有返回0

我试图使用strcmp()比较两个字符串,并且在它们相等的情况下,函数返回-1(意味着它们不相等),我不知道什么是错的.

int main()
{
char password[]={'6','6','6','6','6','6'};
char passmatch[6];
int i =0;
for(i ; i<6 ; i++)
{
    passmatch[i]='6';
}

printf("\n");
if(strcmp(password,passmatch)==0)
{
    printf("Strings are equal");
}
else
{
    printf("String are'nt equal");
}


return 0;
Run Code Online (Sandbox Code Playgroud)

}

c strcmp

1
推荐指数
1
解决办法
185
查看次数

Arduino字符串比较不起作用

我试图比较EEPROM存储的返回字符串的SSID与WiFi.SSID()函数.

虽然在串行监视器中它实际上是相同的,但我没有得到匹配,它永远不会达到if声明.

我尝试使用==不带.str()和使用的运算符if( strcmp ( a.c_str(),b.c_str)==1)

似乎没什么用.我在这里错过了什么?

void ConnectToBestWifi()
{
  int apnos = WiFi.scanNetworks();
  int loc[3];
  int no=0;
  for(int i=0;i<apnos;i++)
  {
    for(int j=0;j<3;j++)
    {
      Serial.println("");
      Serial.println("Wifi SSID");
      Serial.println(WiFi.SSID(i).c_str());
      Serial.println("");
      Serial.println("Read SSID");
      Serial.println(ReadWifiSSID(j).c_str());
      Serial.println("");

    if (strcmp(((WiFi.SSID(i)).c_str()),((ReadWifiSSID(j)).c_str()))==1)
    {
      Serial.println("gotcha");
      loc [no]=i;
      no++;        
    }
  }
Run Code Online (Sandbox Code Playgroud)

下面附带串行监视器的图像

串行监视器

c c++ arduino strcmp

1
推荐指数
1
解决办法
1929
查看次数

比较C中字符串的最快方法

我想知道是否有更快的方法来比较C中的字符串而不是使用strcmp(),特别是当我必须以switch语句方式比较字符串与多个预定义字符串时.在我的应用程序中,要比较的字符串有时可以大到1000个字符,所以只是想是否strcmp()足够,或者是否存在我不熟悉的更好,更有效的方法.我实际上正致力于低功耗嵌入式物联网项目,其中更多的CPU周期需要耗电.

c string compare strcmp

1
推荐指数
1
解决办法
329
查看次数