一、c语言反转函数?
C语言中所谓的字符串不过是字符数组,后跟一个0x00字符标识结尾,所以反转起来很容易,只要一个循环依次将第一个字符和最后一个字符交换,第二个字符和倒数第二个字符交换……如果最中间有两个字符(即需要反转的字符串长度为偶数),那就交换,如果最中间有一个字符(即需要反转的字符串长度为奇数),那就不需要碰它。还有就是最后一个用来标识字符串结尾的0x00字符不用动它。
二、怎么用C语言实现汉字字符串的反转?
看中文字符编码windows一般是gbk两个字节 作为一个汉字,第一个字节必然是0xA0以上的。遇到这种 把两个字节作为一个整体进行翻转。 对于带汉字的,用一个字符串进行翻转比较麻烦最好用另一个字符串进行存储。
void reverse_with_chinese(char *s){ char *p; int len = strlen(s); int i,t; p = (char *)malloc(len+1); p[len]=0; t=len; for(i = 0; s[i]; ) { if(s[i]>0xA0)//汉字 { p[t-1] = s[i]; p[t]=a[i+1]; t-=2; i+=2; } else { p[t--]=s[i++]; } } strcpy(s,p); free(p);}
三、C语言拆分字符串?
char *strtok(char *s, const char *delim);
代码示例:
#include <stdio.h>
#include<string.h>
int main()
{
char str[] = "mv a.c b.c";
char *p;
p = strtok(str, " ");
while(p)
{
printf("%s\n", p);
p = strtok(NULL, " ");
}
return 0;
}
四、c语言 字符串包含?
. 使用库函数
string.h
strstr函数
函数名: strstr
功 能: 在串中查找指定字符串的第一次出现
用 法: char *strstr(char *str1, char *str2);
strchr() #对比记忆这是查找字符的。
说明:返回指向第一次出现str2位置的指针,如果没找到则返回NULL。
调用函数,判断返回值是否等于NULL,决定是否输出
如;
char *p=".c"; //需要的子串
if(strstr(A,p)) printf("%s",A);
2. 不使用库函数
第一行是要查找的字符串
第二行是被查找句子
输出要查找的字符串在被查找句子的首个位置
#include<stdio.h>
#include<string.h>
void main()
{
int i,j,la,lb,num=0;
char c,a[120],b[4500];
while((c=getchar())!='\n') a[num++]=c;a[num]='\0';
num=0;
while((c=getchar())!='\n') b[num++]=c;b[num]='\0';
la=strlen(a);lb=strlen(b);
for(i=0;(lb-i)>=la;i++)
{if(b[i]==a[0])
{for(j=0;j<la;j++)
if(b[i+j]!=a[j]) break;
if(j==la) {printf("%d\n",i+1);break;}
}
}
}
五、C语言字符串合并?
字符串函数strcat(char* tag, char* sour),来实现。
六、c语言输入字符串?
在C语言中,输入字符串可以通过使用标准库函数来实现。可以使用scanf函数来读取字符串输入,或者使用gets函数来获取一行输入。此外,还可以使用fgets函数来读取字符串输入并将其存储到指定的缓冲区中。在处理输入字符串时,需要注意输入的长度,避免出现缓冲区溢出的情况。此外,还需要注意处理输入字符串的结尾符号,以便正确的进行后续的处理。总的来说,在C语言中输入字符串需要考虑安全性和正确性,以确保程序能够正确的处理输入数据。
七、C语言字符串类型?
1.1 C语言没有原生字符串类型
1)很多高级语言像java、C#等就有字符串类型,有个String来表示字符串,用法和int这些很像,可以String s1 = "linux";来定义字符串类型的变量。
2)C语言没有String类型,C语言中的字符串是通过字符指针来间接实现的。
1.2 C语言使用指针来管理字符串
C语言中定义字符串方法:char *p = "linux";此时p就叫做字符串,但是实际上p只是一个字符指针(本质上就是一个指针变量,只是p指向了一个字符串的起始地址而已)。
1.3 C语言中字符串的本质:指针指向头、固定尾部 的地址相连的一段内存
1)字符串就是一串字符。字符反映在现实中就是文字、符号、数字等人用来表达的字符,反映在编程中字符就是字符类型的变量。C语言中使用ASCII编码对字符进行编程,编码后可以用char型变量来表示一个字符。字符串就是多个字符打包在一起共同组成的。
八、c语言字符串讲解?
c语言字符串定义是存入字符的数组。
定义一个数组,数组里存放元素为字符串各个字符+'\0',其中'\0'为码0值,编译器会自动在字符串的末尾添加此值。
在定义这个数组时,指定数组的大小为6,也就是说需要申请6个字节的存储空间,而在等号右侧的双引号中我们却只书写了5个字符。这并不是笔误,C语言规定当使用双引号定义字符串时以'\0'作为这个字符串的结束标志符,也就是说这个字符串一共有6个字符。
在c 语言中,将字符串作为字符数组来处理。(c++中不是)在实际应用中人们关心的是有效字符串的长度而不是字符数组的长度,例如,定义一个字符数组长度为100,而实际有效字符只有40个,为了测定字符串的实际长度,C 语言规定了一个“字符串结束标志”,以字符'\0’代表。
C语言采用字符数组储存字符串,在从字符数组中读取字符串时,计算机是按照顺序来读取的,当然如果没有结束标记,计算机就会一直的读取下去(那么一直读取,然后超出了所定义的数组范围。
九、c语言如何传递字符串?
选择b
不论是空字符"_",还是字母,它的长度都为1。而汉字所占的长度为2.
so:1、对于字符串“hehas钱!”它的长度为10;
2、对于字符数组,在c语言里,字符数组会在末尾自动添加‘\0’,其长度也为1.
所以,字符数组长度==字符串长度+1.
谢谢!
十、c语言求字符串长度?
我推荐2种方法:-------------------------方法一:用库函数strlen()举例:#include<stdio.h>#include<string.h>int main(){ char a[100]; int num; printf("请输入字符串,enter键结束:"); gets(a); num=strlen(a);/*这里,strlen()就是计算a的输入长度,一般,有了这一步,我会加一步a[num]='\0';*/ printf("你刚才输入了%d个字符\n",num); return 0;}---------------------------------方法2:直接输入时计算,这种方法,纯粹是在一边输入一遍计算具体是,定义一个count,然后做判断,没输入一个字符,count加1,即count++;举例:#include<stdio.h>#include<string.h>int main(){ char a[100]; int num=1;//进入while循环的条件 int count=0;//count计算字符输入情况 int i=0;//数组下标 printf("请输入字符串,按阿拉伯数字0结束:"); while(num) { a[count]=getchar(); if(a[count]=='0') //当输入0,结束 num=0; count++; } printf("你刚才输入了%d个字符\n",count); return 0;}注意,第2种方法中,你按enter键,也算字符,只不过是空字符,你看不到而已。希望对你有帮助。
- 相关评论
- 我要评论
-