注册 登录
编程论坛 C++教室

strcpy的找错,大虾指教!!!!!谢了

fanfan320 发布于 2010-05-20 22:32, 1284 次点击
void test()
{
char string[10],str1[10];
int i;
for(i=0;i<10;i++)
{
str1='a';
}
strcpy(string,str1);
}
8 回复
#2
rwyangguang2010-05-20 23:38
#include<string>//要头文件
using namespace std;
void main()   //
{
char string[10],str1[10];
int i;
for(i=0;i<10;i++)
{
   str1[i]='a';//缺i
}
strcpy(string,str1);
}
#3
fanfan3202010-05-21 19:22
#include"stdio.h"
#include"iostream.h"
#include<string.h>
void main()   
{
char string[10],str1[10];
int i;
for(i=0;i<10;i++)
{
   str1[i]='a';
}
strcpy(string,str1);
cout<<string<<endl;
}
在连接是,老是出现“fatal error C1189: #error :  "eh.h is only for C++!"”是什么意思啊??
#4
yjj6340419262010-05-21 23:25
#include<iostream.h>
#include<string.h>
void main()   
{
char string[10],str1[10];
int i;
for(i=0;i<10;i++)
{
   str1[i]='a';
}
strcpy(string,str1);
cout<<string<<endl;
}


这是我改了之后运行的结果“什么也没有输出”;
 
#5
fhqbgmqj2010-05-22 01:25
strcpy函数是一个操作指针的函数,你这样是不能直接复制的,你可以定义两个指针指向这两个数组的首地址。而且这个函数复制的时候是以NULL为结尾标志的;我根据你的程序改了下,你看看:
#include"stdio.h"
#include"iostream.h"
#include<string.h>
void main()   
{
    char string[10],str1[10]="abcdefghi";
    char *s=str1;
    char *d=string;
    strcpy(d,s);
    cout<<string<<endl;
}
注意str1[10]里边是9个字母,最后一个位置为空,这样就可以输出了。
还有你说的“fatal error C1189: #error :  "eh.h is only for C++!"”这句话是说eh.h只能用于C++程序,你再保存程序的时候保存为.cpp就行了,不要保存为.c。

[ 本帖最后由 fhqbgmqj 于 2010-5-22 01:32 编辑 ]
#6
BlueDreame2010-05-22 09:23
局部作用域的字符数组也自动初始化为0串吗?怎么没人添加结束标志?
#7
fanfan3202010-05-22 12:16
回复 4楼 yjj634041926
#include<stdio.h>
#include<iostream.h>
#include<string.h>
void main()   
{
char string[10],str1[10]="abcdefghi";
strcpy(string,str1);
cout<<string<<endl;
}
这样就行了
#8
fanfan3202010-05-22 12:18
回复 5楼 fhqbgmqj
不用指针也行》
#include"stdio.h"
#include"iostream.h"
#include<string.h>
void main()   
{
    char string[10],str1[10]="abcdefghi";strcpy(string,str1);
    cout<<string<<endl;
}
#9
feixinz2010-05-23 00:58
#include<string>//C++的头文件
#include<string.h>//C的
#include<iostream>//C++的
#include<stdio.h>//C的

要是要引用string类就要引用string头文件
还有char a[10]只能保存9个字符的字符串,a[9]是0, 不然打印时会出现乱码现象
1