當前位置:首頁 » 編程語言 » c語言C2664

c語言C2664

發布時間: 2022-08-19 12:09:28

c語言 用指針作為參數,實現交換兩個字元串變數的值 error C2664 求大神指導

#include <stdio.h>
#include <string.h>
void swap(char a[100],char b[100]);
int main()
{
char str1[100],str2[100];
printf("input 1:");
gets(str1);
printf("input 2:");
gets(str2);
swap(str1,str2);
printf("str1:%s\nstr2:%s\n",str1,str2);
return 0;
}
void swap(char a[100], char b[100])
{
char t[100];
strcmp(t,a);
strcmp(a,b);
strcmp(b,t);

}

Ⅱ c語言errorc2664

需要修正一個語法錯誤,一個邏輯錯誤。

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

intmain()
{
charmax[20],str[3][20];
inti;
printf("輸入三個字元串: ");
for(i=0;i<3;i++)
gets(str[i]);//str的類型是char[2][20],需要改成str[i]
if(strcmp(str[0],str[1])>0)
strcpy(max,str[0]);
else
strcpy(max,str[1]);
if(strcmp(str[2],max)>0)//只有str[2]大於max才進行復制
strcpy(max,str[2]);
printf("三個字元串中的最大串為%s ",max);

return0;
}

Ⅲ 【C語言】 錯誤 C2664如何解決 不能將參數 1 從「float」轉換為「float [ ]」

a[100],換成a

Ⅳ VC++ 6.0 C語言程序中error C2664

#include<stdio.h>
intmain()
{
charcChar1,cChar2,cChar3,cChar4;
cChar1='H';
cChar2='e';
cChar3='l';
cChar4='o';

putchar(cChar1);
putchar(cChar2);
putchar(cChar3);
putchar(cChar3);
putchar(cChar4);
putchar(' ');//這里改為單引號
return0;
}

Ⅳ C語言error C2664該怎麼解決

project->setting->c/c++ preprocessor 將 _UNICODE刪除即可解決

Ⅵ C語言,error C2664: 「atoi」: 不能將參數 1 從「_TCHAR *」轉換為「const char *」

這個很簡單,問題就出現在atoi(argv[1])) < 1)
這句上;
原因是_TCHAR和CHAR的類型不一樣;
你要類型轉換才可以;
連接:
http://blog.csdn.net/b_h_l/article/details/7581519
希望可以幫到你~

Ⅶ C語言 error C2664: 'strcmp' : cannot convert parameter 1 from 'char' to 'const char *'錯在哪

1.你要注意了,如果你純粹讀入一個字元就應該用getchar()函數而不是scanf(),這是個習慣問題。因為如果你需要輸入空格符時候scanf會認為空格用於隔開各部分數據而把空格忽略。


2.strcmp函數適用於比較字元串的,例如strcmp("hello","equal");或者是:

char *s1="hello",*s2="equal";

strcmp(s1,s2);

你的錯誤就是因為你比較單個字元是否相等而使用了這個函數,正確的做法是直接比較兩個字元是否相等:if(a==str[i]) 而不是使用strcmp函數


3.在main函數的最後一個for里頭,比較的不應該是for(i=0;i<80;i++);你怎麼知道你讀入的字元個數是80個?正確的是設置一個len變數,每讀入一個字元,len++,在判斷有多少個字元一樣時,

字元串里有的字元是len個而不是80個。具體你可以看我給你的程序哈。


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

intmain()
{
chara,str[80];
inti,j=0;
intlen=0;

a=getchar();
for(i=0;i<80;i++)
{
//scanf("%c",&str[i]);
str[i]=getchar();
len++;
if(str[i]==' ')
break;
}

for(i=0;i<len;i++)
{
if(a==str[i])
j++;
else
continue;
}
printf("在字元串中與%c相同的字母有%d個!",a,j);
return0;
}

運行結果:


歡迎提問,不懂的話歡迎提問。


cannot convert parameter 1 from 'char' to 'const char *這句話的意思就是說:

不能講參數1的char類型轉換成一個地址類型,因為我們通過數組保存字元串,一般來說我們知道數組名就可以訪問這個字元串,因為數組名是數組第一個元素的地址,他們在內存中是緊挨著的。因此你要判斷字元串是否相等,要傳遞給strcmp的是一個數組的地址。而你實際傳遞的是一個char(一個整數)。

Ⅷ c語言error c2664

改成gets(str[i]);試試

Ⅸ C語言,字元串, error C2664: 'strlen' : cannot convert parameter 1 from 'char' to 'const char *'

strlen是用來操作字元串的,你用來操作單個字元當然錯了

Ⅹ 求助報錯 C2664「int login(char [],char [])」: 無法將參數 1 從「const char [6]」轉換為「char []」

你看login函數的聲明和定義不一樣。
函數聲明在main函數之前:
int login(char[], char[]);
函數實現在main函數主體之後:
int login(const char username[], const char passworld[])
你需要把兩處改成一樣。當然目前你調用時傳入的參數都是const char *,因此不能有const。如果調用的時候,參數是char *的話,則有沒有const都可以。

簡單補充一下關於const關鍵字的說明:
樓上老哥說C語言沒有const其實是不對的,C語言當然有const,而且和C++的const是一樣的。加上const之後,表示內容不可變。如果是指針類型的變數,則有輕微區別:
const char * 或 char const *:表示此指針指向的內容不能修改(因此編譯器不允許將const char *轉成char*,因為後者允許修改指向的地址內容;但是反過來是可以的,比方說main函數里可以修改的char數組,可以要求在被調用的函數中不能修改)
char * const:char *類型的指針,且此指針變數的值不能被修改(指向的內容不管)。
所以還有最鬼畜的:const char * const,表示指針變數值不能修改(不能指向別的地方),指向的內容也不能被修改。

熱點內容
夢三國2副本腳本 發布:2025-05-14 19:29:58 瀏覽:859
phpxmlhttp 發布:2025-05-14 19:29:58 瀏覽:432
Pua腳本 發布:2025-05-14 19:24:56 瀏覽:448
蘋果像素低為什麼比安卓好 發布:2025-05-14 19:13:23 瀏覽:459
安卓機微信怎麼設置紅包提醒 發布:2025-05-14 19:00:15 瀏覽:271
androidsystem許可權設置 發布:2025-05-14 18:56:02 瀏覽:970
mq腳本 發布:2025-05-14 18:45:37 瀏覽:25
仙境傳說ro解壓失敗 發布:2025-05-14 18:45:01 瀏覽:868
betweenand的用法sql 發布:2025-05-14 18:39:25 瀏覽:250
tplink攝像頭存儲卡格式化 發布:2025-05-14 18:37:08 瀏覽:347