‘壹’ c语言问题。大家帮忙!
连接 返回值 连接后的字符串指针。例如
char str[32]="abc";
printf("%s", strcat(str,".ccc"));
打出结果 abc.ccc 与 str里的结果相同。
复制, 返回值, 复制后的字符串指针
printf("%s", strcpy(str,"xyz")) ;
打出结果 xyz, 与 str里的结果相同
比较 strcmp, 返回int 值, 为0 表明 相等,非零 为 不等。
测量长度,返回int 值,表示长度字节数
字符转换,不属标准 字符串处理函数
指针变量本身 是无符号整型数,字长与机器有关,一般32位。它的值是指向的地址。
‘贰’ c语言 关于字符数组和整型数组清零
C语言数组和整型数组清空方法,示例:
1、整数数组清零
函数:void bzero(void *s, int n)
头文件: #include <string.h>
功能说明:将字符串s的前n个字符置为0,一般n取sizeof(s),将整块空间清零;
举例:char str[10]; bzero(str, sizeof(str)); 也可以将整个结构体清零;
2、数组清空
使用时间:94s
for( k = 0 ; k <10000 ; k++ )
for( i = 0 ; i<MAX; i++ )
for( j = 0;j < MAX; j++ )
a[i][j] = 0;
(2)c语言bzero函数扩展阅读
C语言结构体初始化
1、定义:
struct InitMember
{
int first;
double second;
char* third;
float four;
};
2、定义时赋值:
struct InitMember test = {-10,3.141590,"method one",0.25};
‘叁’ 求一个数据发送与接收的C语言代码。在线等。望大神赐教。
#include<netinet/in.h>//forsockaddr_in
#include<sys/types.h>//forsocket
#include<sys/socket.h>//forsocket
#include<stdio.h>//forprintf
#include<stdlib.h>//forexit
#include<string.h>//forbzero
#include<iostream.h>//forC++
#defineSERVER_PORT51844
#defineBUFFER_SIZE1024
#defineFILE_NAME_MAX_SIZE512
intmain(intargc,char**argv)
{
if(argc!=2)
{
cout<<"Usage:./"<<argv[0]<<"ServerIPAddress ";
exit(0);
}
sockaddr_inclient_addr;//设置一个socket地址结构client_addr,代表客户机internet地址端口
bzero(&client_addr,sizeof(client_addr));//把一段内存区的内容全部设置为0
client_addr.sin_family=AF_INET;//internet协议族
client_addr.sin_addr.s_addr=htons(INADDR_ANY);//INADDR_ANY表示自动获取本机地址
client_addr.sin_port=htons(0);//0表示让系统自动分配一个空闲端口
intclient_socket=socket(AF_INET,SOCK_STREAM,0);//用client_socket代表客户机socket
if(client_socket<0)
{
cerr<<"CreateSocketFailed! ";
exit(1);
}
if(bind(client_socket,(structsockaddr*)&client_addr,sizeof(client_addr)))//把客户机的socket和客户机的socket地址结构联系起来
{
cerr<<"ClientBindPortFailed! ";
exit(2);
}
structsockaddr_inserver_addr;//设置一个socket地址结构server_addr,代表服务器的internet地址端口
bzero(&server_addr,sizeof(server_addr));
server_addr.sin_family=AF_INET;
if(inet_aton("127.0.0.1",&server_addr.sin_addr)==0)//服务器的IP地址来自程序的参数
{
cerr<<"ServerIPAddressError! ";
exit(3);
}
server_addr.sin_port=htons(SERVER_PORT);
socklen_tserver_addr_length=sizeof(server_addr);
if(connect(client_socket,(structsockaddr*)&server_addr,server_addr_length)<0)//向服务器发起连接,连接成功后client_socket代表了客户机和服务器的一个socket连接
{
cerr<<"CanNotConnectTo"<<argv[1]<<endl;
exit(4);
}
charfile_name[FILE_NAME_MAX_SIZE];
bzero(file_name,FILE_NAME_MAX_SIZE);
cout<<"PleaseInputFileNameOnServer: ";
cin>>file_name;
charbuffer[BUFFER_SIZE];
bzero(buffer,BUFFER_SIZE);
strncpy(buffer,file_name,strlen(file_name)>BUFFER_SIZE?BUFFER_SIZE:strlen(file_name));
send(client_socket,buffer,BUFFER_SIZE,0);//向服务器发送buffer中的数据需要接受的文件名
FILE*fp=fopen(file_name,"wb");
if(fp==NULL)
{
cerr<<"File: "<<file_name<<"CanNotOpenToWrite ";
exit(5);
}
bzero(buffer,BUFFER_SIZE);//从服务器接收数据到buffer中
intlength;
while(length=recv(client_socket,buffer,BUFFER_SIZE,0))
{
if(length<0)
{
cerr<<"RecieveDataFromServer"<<argv[1]<<"Failed! ";
break;
}
intwrite_length=fwrite(buffer,sizeof(char),length,fp);
if(write_length<length)
{
cerr<<"File: "<<file_name<<"WriteFailed ";
break;
}
bzero(buffer,BUFFER_SIZE);
}
cout<<"RecieveFile: "<<file_name<<"FromServer["<<argv[1]<<"]Finished ";
fclose(fp);//关闭文件
close(client_socket);//关闭socket
return0;
}
‘肆’ 求C语言替换字符串中某个字符的函数
#include "stdio.h"
#include "string.h"
void swap(char s[100],char a,char b)/*a为原来要替换的字符,b是替换后的字符*/
{
int i;
for(i=0;i<strlen(s);i++)
{
if(s[i]==a)
{
s[i]=b;
}
}
}
main()
{
char s[100];
char a,b;
int i;
printf("请输入一个字符串:\n");
gets(s);
printf("\n请输入要替换的字符和要替换后的字符,用逗号隔开:");
scanf("%c,%c",&a,&b);
swap(s,a,b);
puts(s);
}
‘伍’ C语言 如何将一个赋值过的数组置空
C语言 将一个赋值过的数组置空步骤如下:
1、打开Visual C++ 6.0,新建一个C++ source file源文件。