#include string.h
成都创新互联-专业网站定制、快速模板网站建设、高性价比林州网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式林州网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖林州地区。费用合理售后完善,10余年实体公司更值得信赖。
#include stdio.h
main()
{char a[100];
gets(a);
printf("%s\n",a);
}
gets()函数用来从标准输入设备(键盘)读取字符串直到换行符结束,但换行符会被丢弃,然后在末尾添加'\0'字符。其调用格式为: gets(s); 其中s为字符串变量(字符串数组名或字符串指针)。 gets(s)函数与scanf("%s:",s)/* scanf("%s",s) */相似,但不完全相同,使用scanf("%s",s);函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到遇到换行为止。
要函数就这样:
#include string.h
#include stdio.h
void sr(char *a)
{ gets(a);
}
main()
{char a[100];
sr(a);
printf("%s\n",a);
}
哦哦O(∩_∩)O^_^
程序的大体思路可以是这样:
str1是原字符串,str2是待插入的字符串,position是待插入的位置,我们可以这样,用一个指针p_cur指向字符串1 str1中的待插入位置position,另一个指针p_end指向字符串1 str1的尾部,每次插入字符前,把str1中从当前位置开始一直到结束字符全部后移一个位置,空出当前位置,然后把要插入的字符放进这个位置,这样就完成了一个字符的插入,重复这个步骤,直到str2被完全插入。
代码如下:
#include stdio.h
#include string.h
void insert_str(char str1[],char str2[],int position)
{
/*
insert_str()函数
功能:将字符串str2插入到str1的position位置处
参数:char str1,char str2 ,int position
返回值:无
*/
int i;
char *p_end,*p_cur,*p;/*p_end指向第一个字符串的尾部,p_cur指向被插入的位置*/
p_end=str1+strlen(str1)-1;
p_cur=str1+position-1;
for(i=0;str2[i]!='\0';i++)
{
for(p=p_end;p=p_cur;p--)
{
*(p+1)=*p;/*从p_cur到p_end的全部元素后移一个位置,此时p_cur指向的位置就空出来了*/
}
*p_cur=str2[i];/*把字符串2中的字符插入空出来的位置*/
p_cur++;/*p_cur下移一个位置*/
p_end++;/*多了一个字符,因此p_end也下移一个位置*/
}
}
void main()
{
char s1[100],s2[20];
int position;
printf("输入字符串1:\n");
gets(s1);
printf("输入插入位置:");
do
{
scanf("%d",position);
while(getchar()!='\n');/*这一句可以把输入position的时候输入的回车去掉*/
}while(position0||positionstrlen(s1));
printf("输入字符串2:\n");
gets(s2);
insert_str(s1,s2,position);
printf("字符串被插入后变成:\n");
puts(s1);
}
1、新建一个 字符串数组的定义与输出项目。
2、添加一个 str.c 文件。
3、包含stdio.h和stdlib.h头文件。
4、输入main函数主体,system()和返回值。
5、定义一个字符串变量str。
6、使用printf()函数输出字符串变量str。
7、运行程序,查看输出结果。
字符串是一种非常重要的数据类型,但是C语言不存在显式的字符串类型,C语言中的字符串都以字符串常量的形式出现或存储在字符数组中。同时,C 语言提供了一系列库函数来对操作字符串,这些库函数都包含在头文件 string.h 中。 一、字符串常量和字符数组 1.1、什么是字符串常量 C 语言虽然没有字符串类型,但是 C语言提是存在字符串这个概念的,也就是字符串常量:以 NUL 字节结尾的 0 个或多个字符组成的序列。字符串常量是不可被修改的,一般用一对双引号(" ")括起的一串字符来表示字符串常量,如: "Hello!"、"\aWarning!\a"、"123abc\n"、"" 字符串常量可以为空,如""就是一个空的字符串常量,但是即使为空,还是存在一个终止符 NUL 的。(在 C 语言中,常用转义字符 \0 来表示 NUL) 1.2、字符串常量与指针 字符串常量与指针关系密切,因为字符串常量的值,实际上表示的是存储这些字符的内存空间的地址,更准确地说是字符串常量中第 1 个字符的地址,而不是这些字符本身。因此,在 C 语言中是不能直接进行字符串赋值的(因为没有字符串类型嘛)。在 C 语言中,常通过声明一个指向 char 类型的指针并将其初始化为一个字符串常量的方式来访问一个字符串: char *message = "Hello World!"; // 上面的语句也可以拆分成下面两句 char *message; message = "Hello World!";// 这句话看起来像是字符串复制,其实不是,只是涉及到指针操作 上述语句声明了一个指向 char 类型的指针,并用字符串常量中第 1 个字符的地址对该指针进行初始化。可以通过字符指针 message 来访问字符串常量: #include stdio.h int main() { char *message = "Hello World!"; printf("%s\n",message); while(*message != '\0'){ printf("%c ",*message++); } printf("\n"); return 0; } /* output: * Hello World! * H e l l o W o r l d ! */ 这段代码,使用字符指针遍历了字符串常量中的每一个字符。 1.3、字符数组 用于存放字符的数组称为字符数组。在 C 语言中,除了字符串常量外,其他所有字符串都必须存储于字符数组或动态分配的内存中。定义一个字符数组和定义一个普通数组一样,不同的是字符数组中存放的是字符数据而已: char charArray[] = {'H','e','l','l','o'}; // 声明并初始化一个字符数组 这句话定义并初始化了一个字符数组 charArray。这个数组的长度实际上为 6 ,因为会自动添加一个字符串结束符 '\0'。 C 语言提供了一种更简洁的方法来对字符数组进行初始化: char charArray[] = "Hello World!"; // 声明并初始化一个字符数组 上述两种声明方式等价。 可以对一个字符数组做出修改: #include stdio.h #include string.h int main() { char str[] = "hello world!"; int len = strlen(str); int i; for(i = 0; i len; i++){ if( str[i] = 'z' str[i] = 'a'){ str[i] = str[i] - 32; } } printf("%s\n",str); } 这段代码可以将字符数组中的小写字母转换成大写字母后输出。 1.4、 字符串常量与字符数组的区别 1)字符串常量是一个字符数组,但是内容和长度在初始化时就已经固定了,不可更改;可以通过一个指向字符串常量第一个元素的指针来访问该字符串常量; 2)字符数组是一个用于存放字符的数组,字符数组的值是可以更改的。 二、获取字符串长度 字符串的长度就是这个字符串所包含字符的个数,但是这个长度是不包含 NUL 字符的。C 语言中使用库函数 strlen 来计算字符串长度: size_t strlen(char const *string); 需要注意的是 strlen 的返回值类型:size_t 类型,这是一个无符号整数类型。