當前位置:首頁 » 編程語言 » c語言指針字元串題庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言指針字元串題庫

發布時間: 2022-05-04 08:25:03

c語言指針字元串基礎問題

char *p="adsasa";
//此語句定義了一個指向char 類型變數的指針變數p,同時將字元串"adsasa"的首元素的地址賦予指針變數p
指針變數 是用來存放其它變數地址的變數,此處指針變數p 中存放的的字元串中首元素的地址,而不是p代表字元串.
printf() 函數中的%s 要求對應的數據類型為 char *,(請參考printf()函數的詳細參考資料 ,書上網上應該都能找到),希望能幫到你.

❷ c語言程序設計 指針和字元串的代碼題

摘要 #include//頭文件

❸ C語言指針編程題,求助大佬

#include <stdio.h>

#include <string.h>

#define MAXS 100

char *str_cat( char *s, char *t );

int main()

{

char *p;

char str1[MAXS+MAXS] = {''}, str2[MAXS] = {''};

scanf("%s%s", str1, str2);

printf("%s ",str1);

p = str_cat(str1, str2);

printf("%s %s ", str2, p);

return 0;

}

char *str_cat (char *str1, char *str2) {

char *p=str1;

while(*(p++));

p--;

while(*str2)*(p++)=*(str2++);

*p=*str2;

return str1;

}

❹ 一道C語言關於字元串和指針的選擇題

A.
str1指向的是12345+'\0'這6個位元組
str2指向的是abcdef+'\0'這7個位元組
我們假設緊接著str1的6個位元組的後面,存有一個別的變數str3,
那麼如果把7個位元組拷貝到6個位元組的位置,多出來的那個位元組就會影響到後面的str3。

B.
str[10]在建立以後,實際上已經存有東西了,只是一些系統的亂碼,你可以列印它試試
所以如果使用strcat進行連接,實際上是從那些亂碼的後面開始連接的,
然後就會出現A裡面那個問題,連接完的字元串超出了str的范圍了

C.
str[10]=""說明現在str裡面沒有東西,所以連接st的時候,是從str[0]開始連接的。
str的空間足夠放入st的那些字元,所以OK~

D.
這個和上面的問題是一樣的

PS:一樓的回答。。有些問題哈。。。。

❺ c語言:指針與字元串

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

void func(char *B, char ch2, char ch3){
int len = strlen(B);
char *buf = (char *)malloc(sizeof(char)*2*len);
int i=0, cnt =0;
for(; i < len; i++){
*(buf+i+cnt) = *(B+i);
if(*(B+i) == ch2){
cnt++;
*(buf+i+cnt) = ch3;
}
}
*(buf+i+cnt+1) = '\0';
printf("%s\n", buf);
free(buf);
}

int main(void) {
char *b = "ajfoeneoiawona";
char ch2 = 'a';
char ch3 = 'y';
func(b, ch2, ch3);
return 0;
}

❻ 關於c語言指針 字元串 選擇題不會 求答案

選擇答案B。

❼ 一道C語言題,關於指針和字元串的。

這個程序沒錯啊,只不過了一個#include

strcpy(str+1,p2+1)
這句話的意思是:原本p2指向「efgh」的第一個字母e,就是字元串的首地址,加1後就指向f啦,同理,str+1也是一樣,指向b啦,也就是從b開始,所以就是把「fgh」復制到「bcdefg」那,str就變成afgh啦。
後面的道理都一樣,str+3,p1+3都超出了字元串的長度,所以沒變化,就輸入afgh啦。
不知道解析的對不對,見笑了,呵呵

❽ 一道C語言題,關於指針和字元串的。

⒈strcpy的實現代碼
char*strcpy(char*pd,char*ps)
{
if((NULL==pd)||(NULL==ps))//[1]
throw"Invalidargument(s)";//[2]
char*strDestCopy=pd;//[3]
while((*pd++=*ps++)!='');//[4]
returnstrDestCopy;
}
//這個還是可以的,根據網路里的改的

❾ C語言指針編程題,求大佬解答

#include <stdio.h>

void myitoa(int n,char*str)

{int i,j;

char t;

for(i=0;n;i++)

{str[i]='0'+n%10;

n/=10;

}

str[i]='';

for(j=0,i--;j<i;j++,i--)

{t=str[i];str[i]=str[j];str[j]=t;}

}

int main()

{ int n;

char s[20];

scanf("%d",&n);

myitoa(n,s);

printf("%s ",s);

return 0;

}

❿ C語言:字元串指針題

結果:BC
分析:
s是字元串的首地址,也就是字元A的地址
while( *s++ ) putchar( *s );
上面:*s++是先取*s的值,然後s自動加1
第一次循環:*s的值是A,非0,條件成立,s自動加1,指向了B,所以後面輸出*s的時候,輸出的是B
第二次循環::*s的值是B,非0,條件成立,s自動加1,指向了C,所以後面輸出*s的時候,輸出的是C
第三次循環:*s的值是C,非0,條件成立,s自動加1,指向了\0,所以後面輸出*s的時候,輸出的是空
第四次循環:*s的值是\0,ASCII碼為0,條件不成立,結束