c語言chars
Ⅰ 請問c語言 char類型的指針要怎麼賦值
#include<stdio.h>
#include<conio.h>
char find_char( char const *source, char const *chars );
int main()
{
char source[100]={'\0'}, chars[100]={'\0'}, find_;
printf("Please input source and chars.\n");
gets(source);//用gets函數輸入一行字元,保存在數組source中
gets(chars); //用gets函數輸入一行字元,保存在數組chars中
find_=find_char(source,chars);
if(find_=='\0')
printf("not found.");
else
printf("%c", find_);
printf("\nend of program\n");
getch(); //要包含頭文件 conio.h
return 0;
}
/*find_char:查找source串中是否含有chars中的任意字元,
是則返回具體是哪個字元,否則返回'\0'*/
char find_char( char const *source, char const *chars)
{
int i, j;
for(i=0; source[i]!='\0'; i++){
for(j=0; chars[j]!='\0'; j++){
if(source[i] == chars[j]){
return source[i]; //這里返回的是字元,所以函數返回類型改為char
break;
}
}
}
return '\0'; //默認也要返回
}
Ⅱ c語言中char*是什麼意思
樓上完全是誤導抄人,什麼
字元變數
啊!
char
是一個數據類型,作用才是定義字元型變數(單個或是字元串)。
比方知int
是整形數據,int
a
=
3;這里int
是類型,
a
是
整型變數
,3是賦值;
char
s
=
'A';
char是字元道類型,s是字元型變數,A是賦值給變數s;
char
s[]
=
"c
program";
char是字元類型,s[]是字元型數組,"c
program"是賦給數組的值
Ⅲ C語言中char s="test";在內存中占幾個位元組
這句代碼有誤,編譯會報錯。。。如果你想問的是"test"這個字元串占幾個位元組的話,它在內存中佔5個位元組的,但是它的長度是4
Ⅳ sizeof(chars)是什麼意思不明白
sizeof 是用來求變數或類型所佔用的位元組數的。比如
sizeof(char) 返回字元類型佔用的位元組數,
sizeof(a)返回變數 a 佔用的位元組數。
Ⅳ C語言中的char型數據是什麼意思
樓上完全是誤導人,什麼字元變數啊!
char
是一個數據類型,作用才是定義字元型變數(單個或是字元串)。
比方int
是整形數據,int
a
=
3;這里int
是類型,
a
是整型變數,3是賦值;
char
s
=
'a';
char是字元類型,s是字元型變數,a是賦值給變數s;
char
s[]
=
"c
program";
char是字元類型,s[]是字元型數組,"c
program"是賦給數組的值。
Ⅵ c語言里,scanf("%s",chars); 如果我一直輸入空格,它就一直不會讀取是嗎(直到我輸入一個非空字元)
c語言里,scanf("%s",chars); 如果一直輸入空格,它就一直讀取不到chars數組的內容。
scanf()是從第一個非空白字元開始讀入的(scanf根本不讀入空格當然是從第一個非空格讀入),詳細地說,當我們輸入數據時,在按下回車鍵前輸入的數據都儲存在緩沖區,按下回車鍵後,會把數據及換行符一起傳送到標准輸入流中,scanf就是從標准輸入流中讀取數據,它會在其中查找,跳過空白符(空格 換行符 製表符)(scanf不能讀取空白符的原因也是如此)。
Ⅶ c語言的數組賦值問題
C語言中,字元串以全0為結束,第二個中沒有結束點,用s[11]表示,c編譯器會自動在字元串未尾加全0共占據11個元素位置
Ⅷ 關於C語言的char *和scanf的問題
問題出在scanf:
scanf("%s",&chars);
這種用法是錯誤的, chars本身就是字元指針(指向字元串數組的首地址),所以不需要再取地址了。
應該改為scanf("%s", chars);
或者scanf("%s", &chars[0]);//這是一種畫蛇添足的方法,但這個效果和上面式子的效果一樣,明白了這點,也就明白這個問題了。
Ⅸ c語言題目:已知有聲明"char s[20]="Hello";",在程序運行過程中,若要想使數組s
選D!
把字元串存儲到一個數組中,就要用strcpy()函數。
數組不是單個
變數,所以不能直接用賦值語句!
所以,A,B都是錯誤的。
具體地說:
A中,s是數組s[20]的地址,是個地址常量,把字元串賦給一個地址常量是錯誤。
B中,s[20]是不是數組s[20],
而是一個變數s[20],
它是不存在的。當你定義了數組s[20]後,就只存在s[0],
s[1],
s[2],
...,
s[19],
不存在s[20].
而且,只有在定義時的s[20]才是整個數組,定以後的s[i]是一個變數。
也只有在定義時,才能對數組用賦值語句賦值,如:char
s[20]="Hello";
定義後,只能用函數strcpy()對數組存儲字元串。PS:
strcpy,
即
string
.
至於C的strcat()函數,我沒見過,不知道,估計也是錯的。
Ⅹ 請問C語言 char類型的指針要怎麼賦值
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char *source = malloc(20*sizeof(char);
printf("Please input source \n");
scanf("%s",source);//f方法三
printf("%s\n",source);
char *temp = "my input source"
sprintf(source,"%s",temp);//方法一
printf("%s\n",source);
strcpy(source,temp);//方法二
printf("%s\n",source);
return 0 ;
}
指針是無法存放字元串的,只有指針指向的那塊空間才能存放字元串,所以我第一句話給它開辟了20個空間,這樣就可以給指針指向的那塊空間賦值了,謝謝
另外給你一個建議 char *a = NULL,*b =NULL,*c =NULL;這樣的寫法是不規范的,很容易出錯。標准形式應該是char *a= NULL;
char *b = NULL;
char *c = NULL;