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

简介: /* ============================================================================ Name : String.
/*
 ============================================================================
 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);
}



相关文章
|
7月前
[字符串和内存函数]strcmp字符串函数的详解和模拟
[字符串和内存函数]strcmp字符串函数的详解和模拟
60 1
|
7月前
|
C语言
[字符串和内存函数]strcat字符串函数的详解和模拟
[字符串和内存函数]strcat字符串函数的详解和模拟
52 0
|
2月前
|
存储 安全 编译器
深入C语言库:字符与字符串函数模拟实现
深入C语言库:字符与字符串函数模拟实现
|
7月前
|
C语言
字符函数和字符串函数解析及模拟实现
字符函数和字符串函数解析及模拟实现
82 0
|
7月前
|
PHP C++
[字符串和内存函数]strcpy和strlen字符串函数的详解和模拟
[字符串和内存函数]strcpy和strlen字符串函数的详解和模拟
71 0
|
7月前
|
数据安全/隐私保护
scanf与getchar连用的注意事项
这里主要讲述scanf函数和getchar函数连续使用的注意事项
109 2
|
7月前
|
C语言
c语言实现姓名排序———字符串复制函数,字符串比较函数
c语言实现姓名排序———字符串复制函数,字符串比较函数
|
C语言 数据安全/隐私保护
【C语言】getchar与scanf输入函数注意事项
【C语言】getchar与scanf输入函数注意事项
108 0
|
存储 C语言
C语言/gets()函数和scanf()函数关于字符串的输入
C语言/gets()函数和scanf()函数关于字符串的输入
|
C语言
【C语言】字符函数和字符串函数(二)—>函数应用实例
【C语言】字符函数和字符串函数(二)—>函数应用实例
67 0