字符串操作练习以及scanf()的注意事项

来源:互联网 发布:行知职高有哪些专业 编辑:程序博客网 时间:2024/05/08 18:15
/* ============================================================================ Name        : String.c Author      : lf Version     : Copyright   : Your copyright notice Description : 字符串操作练习以及scanf()的注意事项 1 字符串的插入 2 删除字符串中的字符 3 scanf()的注意事项 ============================================================================ */#include <stdio.h>#include <stdlib.h>#include <string.h>void test1();void test2();void test3();int main(void) {test1();test2();test3();return EXIT_SUCCESS;}/** * 字符串的插入 * 操作步骤: * 1 找到插入的位置 * 2 保存插入位置之后的字符串 * 3 将插入位置之后的字符串截掉 * 4 原字符串与待插入字符串组拼 * 5 原字符串与原插入位置后的字符串组拼 */void test1(){char insertString[10]=" hello vc";char oldString[40]="hello java hello C++ hello c";printf("oldString=%s\n",oldString);char searchString[10]="C++";char *p=strstr(oldString,searchString);if (p!=NULL) {char tempString[20];strcpy(tempString,p+strlen(searchString));printf("tempString=%s\n",tempString);*(p+strlen(searchString))='\0';printf("oldString=%s\n",oldString);strcat(oldString,insertString);printf("oldString=%s\n",oldString);strcat(oldString,tempString);printf("oldString=%s\n",oldString);} else {printf("NOT FOUND\n");}printf("============\n");}/** * 删除字符串中的字符 */void test2() {int location = 0;char oldString[40] = "hello java hello C++ hello c";printf("oldString=%s\n", oldString);char newString[40];char deleteChar = 'l';char *p = oldString;while (*p != '\0') {if (*p != deleteChar) {newString[location] = *p;location++;} else {}p++;}printf("newString=%s\n", newString);strcpy(oldString,newString);printf("oldString=%s\n", oldString);printf("============\n");}/** *  scanf()的注意事项 *  scanf()会将空格,制表符,空格,换行符,换页符当做数据的终止符. *  但是gets()不会,所以在输入字符串含有以上字符时可gets() */void test3() {//char a[30];//scanf("%s", a);//printf("a=%s\n", a);char b[30];gets(b);printf("b=%s\n", b);}

0 0