C/C++中的字符串

  getch函数 Head File #include "conio.h" 功能:从控制台无回显的读取一个字符 || 用法:int void getch()
  该函数函数经常用于交互输入的过程中完成暂停等功能
  getche函数
  Head File #include "conio.h"
  功能:从控制台带回显的读取一个字符 || 用法:int void getche()
  该函数函数经常用于交互输入的过程中完成暂停等功能
  getchar函数
  Head File #include "conio.h"
  功能:从控制台带回显的读取一个字符 || 用法:int void getchar()
  该函数也是从键盘上读入一个字符, 并带回显。它与前面两个函数的区别在于: getchar()函数等待输入直到按回车才结束, 回车前的所有输入字符都会逐个显示在屏幕上。但只有第一个字符作为函数的返回值。 for( i = 0; (ch = getchar()) != EOF && (ch!='\n'); i++ ) buffer[i] = (char)ch; 表示读到文件结束停止!与getchar对应的还有putchar函数,此函数的作用是将getchar函数读入的内容的第一个字符显示出来。
  strlen(string)
  功能:用于测试字符串长度,即除字符串结束标记外的所有字符的个数。 #include #include "string.h" #include void main( void ) { char strBuf[100]; scanf("%s",strBuf); printf("%s",strBuf); int k=strlen(strBuf); printf("\n%d",k); getch(); } strupr(string) / strlwr(string) 功能:字符串大小写转换函数 printf("\n%s",strupr(strBuf)); printf("\n%s",strlwr(strBuf)); strcpy(string1,string2)/strncpy(string1,string2,n) 功能:将"字符串"按"整型表达式(n)"指定的个数组成字符串存入"字符串"中,若省略"n",则将整个"字符串"存入数字中
  注意:在使用函数strncpy时,如果按整形表达式来复制时,会出现"....烫烫烫烫烫烫..."主要是因为复制后字符串str1不是以'\0'结尾
  ,此时需要手动将字符串结束符号加入。 #include #include "string.h" #include void main( void ) { char strBuf1[100],strBuf2[100],strBuf3[100]; //scanf("%s",strBuf1); gets(strBuf1); strcpy(strBuf2,strBuf1); strncpy(strBuf3,strBuf1,3); strBuf3[3]='\0'; printf("strBuf2:%s",strBuf2); printf("\nstrBuf3:%s",strBuf3); } getcmp(string1,string2)/getncmp(string1,string2,n) 功能:getcmp表示比较两个字符串,getncpy表示比较两个字符串的前n位,若为缺省表示和strcmp函数相同 #include "string.h" #include "stdio.h" #include void main() { int m; int n; char strArr1[80],strArr2[80]; puts("please input the first string:"); gets(strArr1); puts("please input the first string:"); gets(strArr2); m=strcmp(strArr1,strArr2); printf("\nstrcmp() returns %d",m); n=strncmp(strArr1,strArr2,2); printf("\nstrncmp() returns %d",n); //cout字符串string2中的前n位连接到string1中,结果存在string1。 #include "string.h" #include void main() { char str1[100],str2[100]; puts("input string1:"); gets(str1); puts("input string2:"); gets(str2); //strcat(str1,str2); strncat(str1,str2,3); puts(str1); } 下面是C/C++面试时遇到的一些题目
  1. 不调用C library实现字符串的复制功能 #include "stdio.h" #include "iostream" using namespace std; char *strcpy1(char *, const char *); void main() { char strD[20]; const char *strS="woshishui"; strcpy1(strD,strS); printf("%s",strD); } char *strcpy1(char *strDess, const char *strSrss) { char *address=strDess; while((*strDess++ = *strSrss++ )!='\0'); return address; } 2. 请写一个函数来模拟C++中的strstr()
  strstr函数的功能是把主串中子串以及以后的字符全部返回。不调用库函数,实现此功能。 #include "stdio.h" #include "string.h" const char *strstr1(const char *hostStr,const char *subStr); void main() { // char *str=strstr("1234567","345"); // printf("%s",str); char *string1="1234567"; char *string2="345"; //strstr1(string1,string2); printf("%s",strstr1(string1,string2)); } const char *strstr1(const char *hostStr,const char *subStr) { for (int i=0;hostStr[i]!='\0';i++) { int j=0; int temp=i; if (hostStr[i]==subStr[j]) { while (hostStr[i++]==subStr[j++]) { if(subStr[j]=='\0') return &hostStr[i-j]; } i=temp; } } return NULL; }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值