当前位置:首页 » 编程语言 » c语言实现字符串的定义与基本操作
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言实现字符串的定义与基本操作

发布时间: 2022-07-21 06:11:03

‘壹’ c语言中如何定义字符串

可以用数组或指针

数组:

char s[80]="abcd";或者char s[80]={"abcd"}; /*说明:自动加字符串结束标志:*/

char s[80]={"a","b","c","d",""};

指针:

char *s;char*s="abcd";

‘贰’ C语言如何定义字符串,其个数和长度均为变化的

C语言 字符串 <=> 字符数组 <=> 指针[字符指针]

你可以用字符指针 char * 类型定义字符串,这样你就可以利用malloc和realloc动态分配空间了

这个是我写的一个程序例子,你可以参考下
功能:将字符指针作为函数的参数编写一函数 void InvStr(char *s, int n),将字符串s中的前n个字符倒序排列

#include <stdio.h>

#define INIT_SIZE 20
#define INCR_SIZE 10

unsigned int StrLen(char *str) /// 求出字符串中含有的字符个数,不包括结束标志
{ /// * 这里我没有用库函数求长度,我不知道怎么用
unsigned int i;
for (i=0; str[i++]!='\0';);
return (i - 1);
}
void InvStr(char *s, int n) //逆置字符串s的前n个字符
{
int i; //索引变量
char ch; //中间变量

if ((int)StrLen(s) < n || n < 0) n = StrLen(s); //如果n不合适,则直接对整个字符串进行逆置

for(i = 0; i < n/2; i++){
ch = s[i];
s[i] = s[n-1-i];
s[n-1-i] = ch;
}
}
void main()
{
char * str = (char *) malloc (INIT_SIZE * sizeof(char));
char ch;
int i = 0; //字符串当前字符数
int len = INIT_SIZE; //字符串空间大小
while (ch = getchar()) { // 循环录入字符串
if (ch == '@') { ///如果按回车键,则结束
str[i] = '\0'; ///字符串结束标志
break;
}
if (i < len-1) {
str[i] = ch;
} else {
str = (char *) realloc (str, (len + INCR_SIZE) * sizeof(char)); //增加存储空间
str[i] = ch;
len += INCR_SIZE; //重新记录字符串空间
}
i++;
}
scanf("%d",&i);
InvStr(str,i);
printf("%s\n",str);
}

‘叁’ C语言中如何定义一个字符串呀

char b[]="张三",张三是字符串不是字符用双引号一个汉字两个字节,你给的那五个字节是放不下的,那个数组没有对的地方,想用一维数组的话char a[]={"张三,李四,王二,小明,小花"};这样做没什么实际意义

‘肆’ 在c语言中怎样定义字符串

在c语言中定义字符串:

  1. C语言中用字符型CHAR来表示存储字符,没有C++里面的可以单独的字符串类型String;

  2. 所以C里面使用字符数组和字符指针来实现字符串功能;

  3. C的字符数组只能在定义时一起赋值,以后只能给单个元素一一赋值;

  4. char string0[10];

  5. char string1[]="prison break";

  6. char string2[100]="michael scofield";

  7. 1句表示定义个长度为10的字符串,但未赋值,2句表示定义了一个字符数组string1,并进行初始化,使得其长度自动为13(字符串”prison break"中的字符个数加上结尾的''),3句定义了一个有100个元素的字符数组string2,并初始化了17个元素("michael scofield";加上结尾的'')。

‘伍’ C++怎样定义定义字符串

c++中字符串的定义用:string。

如:

string str;//声明str

str="hi"//初始化为hi

可以引入头文件

#include<string>

string str = "hello"//初始化为hello

可以用数组直接定义

数组定义分静态动态

静态: char c[10]; //将数组长度设置为10

动态: int a = 10;

char *c = new char[a]; //将数组长度自定义为a的大小,a的大小可以通过输入自定义设置。

字符串在存储上类似字符数组

它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。

通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。

设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。

以上内容参考:网络-字符串

‘陆’ C语言里怎么定义字符串变量

在C里边是没有字符串变量的。建议用字符数组来实现所需要的操作。