char* strcat( char* , const char * ); 的c语言代码
Strcat函数原型如下:
char *strcat(char *strDest, const char *strScr) //将源字符串加const,表明其为输入参数
{
char * address = strDest; //该语句若放在assert之后,编译出错
assert((strDest != NULL) (strScr != NULL)); //对源地址和目的地址加非0断言
while(*strDest) //是while(*strDest!=’\0’)的简化形式
{ //若使用while(*strDest++),则会出错,因为++是不受循环
strDest++; //约束的。所以要在循环体内++;因为要是*strDest最后指
} //向该字符串的结束标志’\0’。
while(*strDest++ = *strScr++)
{
NULL; //该循环条件内可以用++,
} //此处可以加语句*strDest=’\0’;有无必要?
return address; //为了实现链式操作,将目的地址返回
}
C语言中关于getchar的代码
#includestdio.h
int main(void)
{
int nc=0; /* number of characters */
int nq=0; /* numerical quantities */
int bs=0; /* number of blank spaces */
char str[81],e;
int i,nw=0,word=0;
printf(“Text Analysis\n”);
printf(“please input the Text:\n”);
while(gets(str)) // 循环条件改了
{
for(i=0;str[i];i++) // 循环条件改了
{
if((str[i]=’a’str[i]=’z’)||(str[i]=’A’str[i]=’Z’)) nc++;
else if(str[i]=’0’str[i]=’9′) nq++;
else if(str[i]==’ ‘) bs++;
}
for(i=0;(e=str[i])!=’\0′;i++)
{
if(e==’ ‘) word=0;
else if(word==0)
{
word=1;
nw++;
}
}
}
printf(“Number of Words:%d \n”,nw);
printf(“Number of Characters:%d\n”,nc);
printf(“Number of blank spaces:%d\n”,bs);
printf(“Number of numerical characters:%d\n”,nq);
return 0;
}
试下行不行?
C语言中char *型函数返回值的问题;源码如下,我不懂为什么输出结果是:345 345 345
你的to_c函数里char s[4]是放在栈里的,原本这么做会导致不可预知的结果
但如果非要解释你这种现象的话 就是因为三个指针指向同一个地址
而这个地址就是第一层to_c函数s数组存放的地方
在printf的时候这个地方存放的是最后一遍调用to_c结束后的结果
就是”345″了
用C语言编写一完整源程序,从键盘输入一个字符串Str1,在新的一行输入一个待检测字符Char_Che
#include “stdio.h”
#include “string.h”
void deleteChar(char *a,char c)//从特定字符串中删除特定字符
{
int i; char *d=NULL;
if((d=strchr(a,c))!=NULL)//找到这个字符,从后一位向前移位,将其覆盖,达到删除的目的
{
for(i=0;*(d+i)!=0;i++)
*(d+i)=*(d+i+1);
}
}
int main()
{
char Str1[100]={0};
char Char_Check;
int i;
gets(Str1);
scanf(“%c”,Char_Check);
for(i=0;istrlen(Str1);i++)//一次只能删除一个特定字符,循环删除,最多循环字符串最大长度
deleteChar(Str1,Char_Check);
puts(Str1);
}
运行结果:
求标准C语言读写文件的源代码
C语言读写文件 都是三个步骤
1.获取文件描述符
2.对文件读写
3.关闭文件
对文件读操作
//获取文件指针
FILE *pFile = fopen(“1.txt”,”w”); // 文件打开方式 如果原来有内容也会销毁//向文件写数据
fwrite (“hello”, //要输入的文字
1,//文字每一项的大小 以为这里是字符型的 就设置为1 如果是汉字就设置为4
strlog(“hello”), //单元个数 我们也可以直接写5
pFile //我们刚刚获得到的地址
);
//fclose(pFile); //告诉系统我们文件写完了数据更新,但是我们要要重新打开才能在写
fflush(pFile); //数据刷新 数据立即更新
对文件写操作
FILE *pFile=fopen(“1.txt”,”r”); //获取文件的指针
char *pBuf; //定义文件指针
fseek(pFile,0,SEEK_END); //把指针移动到文件的结尾 ,获取文件长度
int len=ftell(pFile); //获取文件长度
pBuf=new char[len+1]; //定义数组长度
rewind(pFile); //把指针移动到文件开头 因为我们一开始把指针移动到结尾,如果不移动回来 会出错
fread(pBuf,1,len,pFile); //读文件
pBuf[len]=0; //把读到的文件最后一位 写为0 要不然系统会一直寻找到0后才结束
MessageBox(pBuf); //显示读到的数据
fclose(pFile); // 关闭文件
C语言中char的用法
C语言中char用于定义字符类型变量或字符指针变量,例如“char a;”则定义了变量a是字符类型,“char *a;”则定义了变量a是字符指针类型。
char是C语言整型数据中比较古怪的一个,其它的如int/long/short等不指定signed/unsigned时都默认是signed,但char在标准中不指定为signed/unsigned,编译器可以实现为带符号的,也可以实现为不带符号的。
关于char还有一个特殊的语言就是char *,它在C语言中有专门的语义,既不同于signed char *,也不同于unsigned char *,专门用于指以’\0’为结束的字符串。
扩展资料:
C语言所有基本数据类型:
void:声明函数无返回值或无参数,声明无类型指针,显示丢弃运算结果。
char:字符型类型数据,属于整型数据的一种。
int:整型数据,表示范围通常为编译器指定的内存字节长。
float:单精度浮点型数据,属于浮点数据的一种。
double:双精度浮点型数据,属于浮点数据的一种。
参考资料来源:百度百科-char (计算机语言关键字)