❶ c語言,字元串指針
m是char *型指針,name[z]是char型字元,二者類型不匹配。strcmp只能比較兩個字元串,所以anme[z]也不符合strcmp第二個形參類型的要求。試著改成strcmp(m,name);看看。
❷ C語言指針與字元串
*str 指向的是str字元數組的首地址,而前面的佔位符是%s, 這里如果是*str的話,會報指針錯誤的core
❸ c語言字元串指針
字元串指針與字元串數組一樣是有長度的哦。
❹ C語言字元指針怎麼輸入謝謝
可以參考下面的代碼:
#include <stdio.h>
#include <string.h> // 要用尖括弧
intmain()
{
char*str;
str = (char*)malloc(sizeof(char) * 20); // 申請20個char長度的空間
scanf("%s", str); //輸入
printf("%s ", str); // 輸出
free(str); // 釋放空間
return0;
}
(4)c語言字元串指針擴展閱讀:
字元指針注意事項:
在字元指針中p是指針變數指向字元串首元素(前提對p指針沒有進行指針操作),p中存放首元素的地址(一旦被初始化就,系統就為我們分配好了地址,而且地址也不能改變,因為字元指針是一個只讀變數,不能企圖對一個初始化好的指針進行內部修改)
而*p是對指針變數p進行解引用操作,也就是指針所指向的內容,而&p是對指針變數取地址,所以也就肯定不會和p的值相等,因為字元指針系統會為其分配內存,p的值是字元串首元素的地址。
❺ C語言字元串指針問題
char * x(char *a,char *b){//a字元串,b字元
int i=0,j=0;
char c[100];//接收去掉*b字元的字元串
while(a[i]!='\0'){
if(a[i]!=*b){
c[j]=a[i];j++
}
i++;
}
c[j]='\0';
return c;
}
❻ C語言 用指針處理字元串
/*優先順序問題,給你改好了*/
#include <stdio.h>
int main(void)
{
char buffer[100];
char *pbuffer = buffer;
size_t index = 0;
fflush(stdin);
for( ; index<sizeof(buffer) ; index++)
{
if((*(pbuffer+index) = getchar()) == '\n') //注意這里的括弧
{
*(pbuffer+index) = '\0';
break;
}
}
if((index == sizeof(buffer))&&(*(pbuffer+index)!='\0'))
printf("You ran out of space in the buffer.");
printf("%s",buffer);
return 0;
}
❼ C語言字元串和指針用法
void time1(char * s )
{
long p;
struct tm *now;
p = time(NULL);
now = localtime(&p);
s = asctime(now); //這里改變的形參變數s本身的值,與實參s無關,所以,這里s的變化與主函數中的s沒有關系!
return ;
}
一、
#include<stdio.h>
#include<time.h>
voidtime1(char**s);
intmain(void)
{
char*s;
time1(&s);
printf("%s",s);
return0;
}
voidtime1(char**s)//傳二維指針,帶回去結果!
{
longp;
structtm*now;
p=time(NULL);
now=localtime(&p);
*s=asctime(now);
}
二、
#include<stdio.h>
#include<time.h>
#include<string.h>
voidtime1(char*s);
intmain(void)
{
chars[32]={''};
time1(s);
printf("%s",s);
return0;
}
voidtime1(char*s)
{
longp;
structtm*now;
p=time(NULL);
now=localtime(&p);
strcpy(s,asctime(now));//這時的s是數組,可以賦值
}
❽ c語言 指針字元串的使用
第一個程序,樓主傳進去的是個地址t,然後對執行t++;就這塊錯了,t++後返回的不是字元串的起始地址了,地址已經發生變化了。
❾ c語言,字元指針(字元串)問題
char * inputWord; 定義的是指針,並沒有申請存放字元串的空間,改為字元數組即可。如
char inputWord[100];
還有,語句scanf("%s",&inputWord);中的&應去掉,改為
scanf("%s",inputWord);