字符串操作练习以及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);
}



相关文章
|
4月前
|
存储 C语言
C语言的scanf的函数输入数据
C语言的scanf的函数输入数据
33 1
|
4月前
|
C语言
14.C语言:用scanf函数输出数据
14.C语言:用scanf函数输出数据
45 0
|
1天前
|
存储 C语言
【C语言基础考研向】10 字符数组初始化及传递和scanf 读取字符串
本文介绍了C语言中字符数组的初始化方法及其在函数间传递的注意事项。字符数组初始化有两种方式:逐个字符赋值或整体初始化字符串。实际工作中常用后者,如`char c[10]=&quot;hello&quot;`。示例代码展示了如何初始化及传递字符数组,并解释了为何未正确添加结束符`\0`会导致乱码。此外,还讨论了`scanf`函数读取字符串时忽略空格和回车的特点。
|
3月前
|
存储 缓存 移动开发
【C语言基础篇】scanf()函数详解
【C语言基础篇】scanf()函数详解
|
4月前
|
存储 C语言 索引
C语言用scanf函数输入数据
C语言用scanf函数输入数据
27 0
|
4月前
|
数据安全/隐私保护
scanf与getchar连用的注意事项
这里主要讲述scanf函数和getchar函数连续使用的注意事项
65 2
|
4月前
|
C语言
c语言实现姓名排序———字符串复制函数,字符串比较函数
c语言实现姓名排序———字符串复制函数,字符串比较函数
|
编译器 C语言
【C语言进阶】字符函数及字符串函数,带你掌握核心用法并模拟实现(1)——strlen,strcpy,strcmp
【C语言进阶】字符函数及字符串函数,带你掌握核心用法并模拟实现(1)——strlen,strcpy,strcmp
125 1
|
存储 C语言
C语言/gets()函数和scanf()函数关于字符串的输入
C语言/gets()函数和scanf()函数关于字符串的输入
|
C语言 数据安全/隐私保护
【C语言】getchar与scanf输入函数注意事项
【C语言】getchar与scanf输入函数注意事项
78 0