本文目錄一覽:
- 1、在C語言中,利用指針,將一個字元數字複製到另一個字元數組。為何運行不出來?
- 2、c語言,輸入一串字元(長度不超過80個字元),要求將其中的數字字元複製到另一個字元串中。
- 3、c語言中如何像用函數strcpy複製字元串一樣複製數字,如複製30。
- 4、C語言里,將一串上百位的數字按位數複製給數組
在C語言中,利用指針,將一個字元數字複製到另一個字元數組。為何運行不出來?
錯誤有二:
(1)除申明變數處,其餘不能直接對字元串賦值,p=”Another beautiful string”;應改為
strcpy(p,”Another beautiful string”);
(2)字元串q明顯比p短,而定義的strcpy函數*from應該比*to短才可以,否則會出現錯誤,若改成
strcpy(q,p)就可以了,另外p,q本身就是指針(地址變數),因此實參傳遞時不能加*
c語言,輸入一串字元(長度不超過80個字元),要求將其中的數字字元複製到另一個字元串中。
#include stdio.h
int main()
{
char s1[100], s2[100];
int i,j;
gets(s1);
for(i = j = 0; s1[i]; i ++)
if(s1[i]=’0’s1[i]=’9′)
s2[j++] = s1[i];
s2[j] = 0;
puts(s2);
return 0;
}
指針方式類似.
#include stdio.h
int main()
{
char s1[100], s2[100];
char *p1=s1, *p2=s2;
gets(p1);
while(*p1)
{
if(*p1=’0’*p1=’9′)
*p2++ = *p1;
p1++;
}
*p2 = 0;
puts(s2);
return 0;
}
c語言中如何像用函數strcpy複製字元串一樣複製數字,如複製30。
寫一個函數即可。比如,可以寫如下的一個函數:
int intncpy(int *des, int *src, int len)
{
int i;
if (des == NULL || src == NULL || len = 0)
return -1;
for (i = 0; i len; i++)
{
*des++ = *src++;
}
return 0;
}
說明:
為了適合大多數情況,不方便像strcpy()一樣,用「\0」自動判別字元串結尾。因此用類似於strncpy()定長度的方式,進行數字拷貝。
其它數字類型,比如float, double, 都可以按照類似的方式,編製對應的ncpy()程序。
可以繼續交流,謝謝。
C語言里,將一串上百位的數字按位數複製給數組
由於數字超大,因此這個上百位的數字原則上只能保存在字元串中,假設數字字元串為s[200],保存數組為N[200],相關代碼如下:
int CopyStrToIntArray(char s[200],int n[200])
{
char *p;
int nCount;
nCount=0,p = s;
while(*p)
{
n[nCount++] = *p-‘0’;
p++;
}
return nCount;
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/219932.html