c語言字元串指針
『壹』 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語言,字元串指針
m是char *型指針,name[z]是char型字元,二者類型不匹配。strcmp只能比較兩個字元串,所以anme[z]也不符合strcmp第二個形參類型的要求。試著改成strcmp(m,name);看看。
『叄』 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;
}
(3)c語言字元串指針擴展閱讀:
字元指針注意事項:
在字元指針中p是指針變數指向字元串首元素(前提對p指針沒有進行指針操作),p中存放首元素的地址(一旦被初始化就,系統就為我們分配好了地址,而且地址也不能改變,因為字元指針是一個只讀變數,不能企圖對一個初始化好的指針進行內部修改)
而*p是對指針變數p進行解引用操作,也就是指針所指向的內容,而&p是對指針變數取地址,所以也就肯定不會和p的值相等,因為字元指針系統會為其分配內存,p的值是字元串首元素的地址。
『肆』 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語言,字元指針(字元串)問題
char * inputWord; 定義的是指針,並沒有申請存放字元串的空間,改為字元數組即可。如
char inputWord[100];
還有,語句scanf("%s",&inputWord);中的&應去掉,改為
scanf("%s",inputWord);
『陸』 C語言指針與字元串
*str 指向的是str字元數組的首地址,而前面的佔位符是%s, 這里如果是*str的話,會報指針錯誤的core
『柒』 c語言簡單字元串指針
char *p;定義了一個指針,但是系統還未對它初始化,所以它指向的是一個未知的地址,然後你調用解引用操作(*p)對它賦值,相當於是對一個未知的地址賦值,系統是不允許的,所以出錯。
char *p="abcd";printf("%s",p);
『捌』 c語言指針,字元串
聲明中 int *s; 聲明 s 是 指針,用於指向整型。
語句中 *s 表示 指針指向的值,s 表示 指針指向的地址。
第4題,int a=3,b=4,c=5; 條件 c>b>a 分步計算 為 ((c>b)>a)
(c>b) is true, 得 1, (1<a) is false, 得 0, 0 && anything 得 0。
0 ? 2:1 三目運算,false 得 冒號後 的 1。答案 1.
strcpy(s,"hello); s 是指針,無字元串存放單元,所以錯。
str = "hello"+1; 賦值運算不允許,要用函數
*&(str+1) 中 涉及左值,不允許。
s = str+1; 正確,地址運算,讓 s 指向 str[1] 的地址。
『玖』 c語言字元串指針
字元串指針與字元串數組一樣是有長度的哦。