当前位置:首页 » 编程语言 » c语言获得字符串的方法
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言获得字符串的方法

发布时间: 2022-11-30 08:36:48

A. c语言计算字符串长度的几种方法

C语言计算字符串长度,可以手动计算也可以使用库函数或者sizeof()操作符。

方法:

  1. 自定义函数求长度

  2. 使用strlen()函数

  3. 使用sizeof()操作符


自定义函数:

sizeof(str)/sizeof(str[0]); //假设str为待求的字符串数组名

注意:

  1. strlen()函数求出的字符串长度为有效长度,既不包含字符串末尾结束符 ‘’;

  2. sizeof()操作符求出的长度包含字符串末尾的结束符 ‘’;

  3. 当在函数内部使用sizeof()求解由函数的形参传入的字符数组的长度时,得到的结果为指针的长度,既对应变量的字节数,而不是字符串的长度,此处一定要小心。

B. C语言如何从字符串中读入字符

在scanf函数中,可以使用%c来读取一个字符,使用%s读取一个字符串, 但是读取字符串时不忽略空格,读字符串时忽略开始的空格,并且读到空格为止,因此只能读取一个单词,而不是整行字符串。

其实scanf函数也可完成这样的功能,而且还更强大。这里主要介绍一个参数,%[],这个参数的意义是读入一个字符集合。[]是个集合的标志,因此%[]特指读入此集合所限定的那些字符,比如%[A-Z]是输入大写字母,一旦遇到不在此集合的字符便停止。如果集合的第一个字符是"^",这说明读取不在"^"后面集合的字符,既遇到"^"后面集合的字符便停止。注意此时读入的字符串是可以含有空格的,而且会把开头的空格也读进来。

C. c语言中怎么从字符串中取字符

char s[]="ssssabedbewb";
int len;
char *p;
s[2]; //第一种方法
printf("输入输入字符串的长度:");
scanf("%d",&len);
printf("输入字符串:");
p=malloc(len);
scanf("%s",p);
printf("%c",p[3]); //第二种方法

显然第二种方法更灵活,不过就是有点烦

D. c语言查找字符串

字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“b”,s[9]="j",而字符串的零位正是它的长度,c语言查找字符串方法为:

1、首先,定义一个字符数组变量,可以这么写。

注意事项:

尽管形式字符串可以有任意(但有限)的长度,实际语言的字符串的长度经常被限制到一个人工极大值。有两种类型的字符串数据类型: “定长字符串”,它有固定的极大长度并且不管是否达到了这个极大值都使用同样数量的内存。

E. C语言中如何查找字符串

用strstr这个函数

包含文件:string.h
函数名: strstr
函数原型:extern char *strstr(char *str1, char *str2);
功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。
返回值:返回该位置的指针,如找不到,返回空指针。

源代码:

#include<stdio.h>
#include<string.h>//调用string.h中的strstr函数
void main(){
char ch1[255]="abcde";
char ch2[100]="cd";
char* ch;//用于接受返回值
if((ch=strstr(ch1,ch2))==NULL){//说明没有要找的字符串
printf("-1\n");
}else{//说明找到了那个字符串
printf("%d\n",ch-ch1+1);//cde的地址减去abcde的地址+1
}
}

F. C语言中怎样获得字符串中的单个字符

根据字符串存储的变量的不同,方法不同,参考代码:

存储在char数组中(支持C/C++)

charstr[]="hello";
inti;
for(i=0;str[i];i++)
printf("%c ",str[i]);//以数组方式引用一个字符:str[i]
for(i=0;*(str+i);i++)
printf("%c ",*(str+i));//以指针方式引用一个字符:*(str+i)

存储在string中(仅支持C++)

stringstr="abcde";
for(string::iteratoriter=s.begin();iter!=s.end();iter++)//使用迭代器
{
cout<<*iter<<endl;
}
cout<<endl;

for(inti=0;i<s.length();i++)
{
cout<<s[i]<<endl;//使用数组方式调用,得到单个元素
}

G. c语言字符串提取与合成问题

按要求,将原字符串拆分成两个字符串分别单独保存。

思路:

一、两个指针分别指向数组第一项和第二项,对应偶数项和奇数项,之后指针同时循环+2取值保存在对应数组。

二、拼接字符串直接使用字符串函数strcat。(不想使用库函数,也可循环赋值)。

#include <stdio.h>

#include <string.h>

#define M 20 //数组最大长度

int splitStr(char str[],char oStr[],char eStr[]);//拆分str到oStr和eStr

int main()

{

char str[M+1],oStr[M+1],eStr[M+1];//str为原字符串,oStr为奇数字符串,eStr为偶数字符串

printf("请输入一个字符串(最大%d个字符):",M);

scanf("%s",str);

splitStr(str,oStr,eStr);

printf("其中奇数项组成的字符串为:%s ",oStr);

printf("其中偶数项组成的字符串为:%s ",eStr);

strcat(eStr,oStr);//将偶数组和奇数组组合后放在偶数组中

printf("将偶数组和奇数组组合后新数组为%s ",eStr);

return 0;

}

int splitStr(char str[],char oStr[],char eStr[])

{

int i=0,j=0;

char *op=str+1,*ep=str;//op指向奇数项,ep指向偶数项,循环+2取值

while(1)

{

if(*ep==0) break;

if(*ep) eStr[i++]=*ep;

if(*ep && *op) oStr[j++]=*op;

if(*op==0) break;

ep+=2,op+=2;

}

eStr[i]=0,oStr[j]=0;

return 1;

}

H. C语言,如何提取字符串

C语言提取字符串的方法有:逐个字符提取、使用strstr()查找提取、按字符的位置提取等

根据使用需求来确定提取方法,多数情况下希望在一大段字符里面提取出想要的字符串,可以用strstr函数