本文目录一览:
- 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;
}