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

c语言字符串

发布时间: 2022-01-15 04:26:23

‘壹’ 如何用c语言来表达一个字符串

1)在串值后面加一个不计入长度的结束标记字符,比如'\0'来表示串值的终结

初始化一个字符串的方法如下,在最后添加'\0'

char str[] = {'I','a','m','h','a','p','p','y','\0'};
也可以直接使用字符串常量初始化字符数组(系统自动加上'\0'),这种方法符合人们的习惯。

char str[] = "I am happy";
或者
char str[] = {"I am happy"};
注意:不能使用下面的赋值方式:
char str[20];
str = "I am happy";
但可以用字符指针指向这个字符串:
char *str;
str = "I love China";

(2)将实际串长度值保存在数组0的下标下

#define MAXSIZE 20 //数组的长度
typdef char String[MAXSIZE+1];
初始化字符串的方法:

String t;
StrAssign(t,"I am happy");
int StrAssign(String T,char *chars)
{
T[0] = strlen(chars); //下标为0存放数组长度
for(i=1;i<=strlen(chars);i++) //下标位置从1开始存放数据
{
T[i] = *(chars+i-1);
}
return 1;
}
(3)使用结构体类型(自定义类型)

#define MAXSIZE 20
typedef struct{
char ch[MAXSIZE];
int len;
}String;
其中:MAXSIZE表示串的最大长度,ch是存储字符串的一维数组,len是字符串的长度
初始化函数示例:

String t;
StrAssign(&t,"I am happy");
int StrAssign(String *t,char *chars)
{
int i;
if(strlen(chars)>MAXSIZE+1) //字符串的长度大于数组的长度,操作失败,返回0
return 0;
for(i=0;i<strlen(chars);i++)
{
t->ch[i] = *(chars+i);
}
t->len = strlen(chars); //数组的长度
return 1; //返回1,操作成功
}
说明:这里的StrAssign函数的参数t使用的是指针,是因为结构体变量做做形参,用法和普通变量一样属于值传递方式,在子函数中要给t赋值,所以输入的是t的指针。与之对比的是(2)子函数中T是数组,传入的是数组的首地址(改变形参也就改变了实参)。

————————————————
版权声明:本文为CSDN博主“chenkaibsw”的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/chenkaibsw/article/details/78957944

‘贰’ C语言字符串

若你的编译器支持中文字符输出,则你可把输出语句里的英文字符改用中文。
#include<stdio.h>
int main()
{
char s[80];
int i;
printf("input a string (upper-case latters only) please:\n");
loop: gets(s);
for (i=0;i<strlen(s);i++){
if (s[i]>='A' && s[i]<='Z') continue; //大写判断
else {
printf("re_input a string (upper-case latters only) please:\n");
goto loop; //转向语句
};
};
printf("output reversed:\n");
for (i=strlen(s)-1;i>=0;i--) printf("%c",s[i]);
return 0;
}

‘叁’ C语言字符串类

#include<stdio.h>
#include<string.h>
intmain()
{
chara[10][100];
intscore[10],i,j,temp,stemp;
for(i=0;temp;i++)
{
gets(a[i]);
temp=strlen(a[i]);
}
for(i=0;strlen(a[i]);i++)
{
score[i]=0;
for(j=0;j<strlen(a[i]);j++)
{
if(a[i][j]>='a'&&a[i][j]<='z')
stemp=a[i][j]-96;
if(a[i][j]>='A'&&a[i][j]<='Z')
stemp=a[i][j]-64;
score[i]+=stemp;
}
}
for(i=0;strlen(a[i]);i++)
printf("%d ",score[i]);
return0;
}


‘肆’ c语言中字符串是%什么

如果用在scanf或printf中的格式字符串中:
%d是代表整型数据,%f代表float型数据,%c代表字符型数据,%s代表字符串
具体可以网络scanf或printf

‘伍’ c语言如何表示字符串

C语言中并没有字符串这个类型,表示字符串时,需要使用字符数组,或字符指针。即char型数组,或char *指针。

char str[100] = "hello world";
就是一种字符串的表示方法。

另外,在C语言中,约定用字符数组表示字符串时,以'\0'为字符串结尾,即ascii码0。

‘陆’ c语言字符串代码

to Earthg:
scanf不能实现含多个子字符串的字符串的读取。

to xbvl3vosrs:
C++中也没有大写的String类,而且C++标准库STL中的小写string类中也没有Split方法。

---------------------

C语言提供库函数strtok,可以实现字符串分割。

给出MSDN范例代码如下,注释已经适当添加和修改:

/* STRTOK.C: In this program, a loop uses strtok
* to print all the tokens (separated by commas
* or blanks) in the string named "string".
*/

#include <string.h>
#include <stdio.h>

char string[] = "A string\tof ,,tokens\nand some more tokens";
char seps[] = " ,\t\n";
char *token;

void main( void )
{
printf( "%s\n\nTokens:\n", string );
/* Establish string and get the first token: */
token = strtok( string, seps ); // 这里获得第一个子串
while( token != NULL )
{
/* While there are tokens in "string" */
printf( " %s\n", token ); // 如果你要存放每个子串进入二维数组,那么这一句就改成字符串赋值
// 使用strcpy函数。
/* Get next token: */
token = strtok( NULL, seps ); // 这里从第二个子串开始依次获得每一个子串
}
}

-----------------------------------

‘柒’ 在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语言中如何定义字符串

可以用数组或指针

数组:

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

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

指针:

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

‘玖’ c语言定义字符串

定义字符串的方法如下:

#include <stdio.h>

#include <stdlib.h>

int main()

{

//定义字符串的几种方式

//字符串和字符数组的区别:最后一位是否是空字符

char names1[] = {'j', 'a', 'c', 'k', ''};

char names2[50] = "jack";

char * names3 = "jack";

printf("数组所占空间大小:%d ", sizeof(names1));

printf("数组所占空间大小:%d ", sizeof(names2));

//动态输入

printf("请输入新名称: ");

scanf("%s", names2);

printf("%s ", names2);

return 0;

}


(9)c语言字符串扩展阅读

字符串函数的应用

①连接运算 concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn.

例:concat(‘11’,'aa’)='11aa’;

②求子串。

Copy(s,I,I) 从字符串s中截取第I个字符开始后的长度为l的子串。

例:(‘abdag’,2,3)=’bda’

③删除子串。

过程 Delete(s,I,l) 从字符串s中删除第I个字符开始后的长度为l的子串。

例:s:=’abcde’;delete(s,2,3);结果s:=’ae’

④插入子串。

过程Insert(s1,s2,I) 把s1插入到s2的第I个位置。

例:s:=abc;insert(‘12’,s,2);结果s:=’a12bc’

‘拾’ c语言如何声明字符串

C语言中没有字符串类型的变量。
他只有字符变量类型char,所以字符串用变通的方式来表示。
第一是字符数组来表示字符串。用下面的语句声明:
char a[10];
C语言中字符数组与字符串的唯一区别是字符串末尾有一个结束符'\0',而字符数组不需要。
如刚才声明的a[10]是一个含有10个元素的字符数组,它也能存放含有9个元素的字符串。
第二种方式是直接用指针。语句是:
char *a;
用指针声明的字符数组,大多数功能与字符数组表示字符串相同。但也有以下两点不同,一是储存位置不同,用字符数组表示时,字符串是存放在储存器的变量区域内;而用指针表示的字符数组是存储在储存器的常量区内;第二个区别是字符数组的字符串可以更改,而指针表示的字符串不能更改。
有关字符串的赋值方法,如何引用,请参考相关书籍。
有什么问题请留言。