您可以使用string.h头中的strlen()函数来获取字符串数据的长度。
#include <stdio.h>
#include <string.h>
void string_length();
int main(int argc, const char* argv[]) {
string_length();
return 0;
}
void string_length(){
char str[20] = "Hello world";
printf("str: %sn",str);
printf("length: %dn",(int)strlen(str));
}
上面的代码生成以下结果。
你可以通过位置索引得到一个字符。string_var [index]语法提供了这个功能。
注意0是第一个索引。
#include <stdio.h>
#include <string.h>
void string_explore();
int main(int argc, const char* argv[]) {
string_explore();
return 0;
}
void string_explore(){
char str[15] = "Hello world";
int index;
for(index=0; index<strlen(str); index++){
printf("%cn",str[index]);
}
}
上面的代码生成以下结果。
我们可以将字符串连接成一个字符串。
我们可以从string.h头中使用strcat()函数。
#include <stdio.h>
#include <string.h>
void concatenating();
int main(int argc, const char* argv[]) {
concatenating();
return 0;
}
void concatenating(){
printf("====concatenating===n");
char str1[30] = "hello";
char str2[10] = "wolrd";
strcat(str1,str2);
printf("result: %sn",str1);
}
上面的代码生成以下结果。
字符串类型转换为数字,您可以使用sscanf()函数将String转换为数字。
#include <stdio.h>
#include <string.h>
void string_to_numeric();
int main(int argc, const char* argv[]) {
string_to_numeric();
return 0;
}
void string_to_numeric(){
printf("====string_to_numeric===n");
char str1[10] = "10";
char str2[10] = "28.74";
int num1;
float num2;
sscanf(str1,"%d",&num1);
sscanf(str2,"%f",&num2);
printf("num1: %dn",num1);
printf("num2: %fn",num2);
}
上面的代码生成以下结果。
要将数字转换为字符串类型,请使用sprintf()函数。
您可以自动获取String类型。
#include <stdio.h>
#include <string.h>
void numeric_to_string();
int main(int argc, const char* argv[]) {
numeric_to_string();
return 0;
}
void numeric_to_string(){
int n = 10;
float m = 23.78;
char num1[10];
char num2[10];
sprintf(num1,"%d",n);
sprintf(num2,"% .2f",m);
printf("num1: %sn",num1);
printf("num2: %sn",num2);
}
上面的代码生成以下结果。
解析String的简单解决方案使用具有delimiter参数的strtok()函数。
例如,你有String数据;分隔符,并希望解析它。
#include <stdio.h>
#include <string.h>
void string_parser();
int main(int argc, const char* argv[]) {
string_parser();
return 0;
}
void string_parser(){
char cities[40] = "Tokyo;Berlin;London;New York";
char token[2]=";";
char* city;
printf("cities: %sn",cities);
city = strtok(cities, token);
while(city != NULL){
printf("%sn", city );
city = strtok(NULL, token);
}
}
上面的代码生成以下结果。
您可以从String数据中复制一些字符。
使用strcpy()和strncpy()函数。
#include <stdio.h>
#include <string.h>
void string_copy();
int main(int argc, const char* argv[]) {
string_copy();
return 0;
}
void string_copy(){
char str[15] = "Hello world";
char new_str[20];
strcpy(new_str,str);
printf("str: %sn",str);
printf("new_str: %sn",new_str);
memset(new_str, "0", sizeof(new_str));
strncpy(new_str,str,5);
printf("strncpy-new_str: %sn",new_str);
}
上面的代码生成以下结果。
C标准库stdlib.h提供了一些函数,用于将字符串转换为数字。
atof - 将字符串转换为浮点数。
atoi - 将字符串转换为整数。
这两个函数都在下一个程序中演示。
#include <stdio.h>
#include <stdlib.h>
main()
{
char *str1 = "123.79";
char *str2 = "55";
float x;
int y;
printf("nString 1 is "%s"n", str1);
printf("String 2 is "%s"n", str2);
x = atof(str1);
y = atoi(str2);
printf("nString 1 converted to a float is %.2fn", x);
printf("String 2 converted to an integer is %dn", y);
} //end main
上面的代码生成以下结果。
strcmp()函数比较两个字符串的相等性。
#include <stdio.h>
#include <string.h>
main()
{
char *str1 = "A";
char *str2 = "A";
char *str3 = "!";
printf("nstr1 = %sn", str1);
printf("nstr2 = %sn", str2);
printf("nstr3 = %sn", str3);
printf("nstrcmp(str1, str2) = %dn", strcmp(str1, str2));
printf("nstrcmp(str1, str3) = %dn", strcmp(str1, str3));
printf("nstrcmp(str3, str1) = %dn", strcmp(str3, str1));
if ( strcmp(str1, str2) == 0 )
printf("nLetter A is equal to letter An");
if ( strcmp(str1, str3) > 0 )
printf("Letter A is greater than character !n");
if ( strcmp(str3, str1) < 0 )
printf("Character ! is less than letter An");
} // end main
strcmp()函数使用两个字符串作为参数,并使用相应的字符代码进行比较。
比较两个字符串后,strcmp()函数返回一个单一的数值,它指示第一个字符串是否等于,小于或大于第二个字符串。
下表更详细地描述了strcmp()函数的返回值。
示例函数 | 返回值 | 描述 |
---|---|---|
strcmp(string1,string2) | 0 | string1等于string2 |
strcmp(string1,string2) | <0 | string1小于string2 |
strcmp(string1,string2) | >0 | string1大于string2 |
上面的代码生成以下结果。
C 练习实例50 C 语言经典100例题目:#include 的应用练习。程序分析:无。程序源代码:test.h 文件代码如下:#define LAG #defin...
C 练习实例76 C 语言经典100例题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/...
C 练习实例80 C 语言经典100例题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把...
C 练习实例98 C 语言经典100例题目:从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件"test"中保存...
C 库函数 - fseek() C 标准库 - stdio.h描述C 库函数 int fseek(FILE *stream, long int offset, int whence) 设置流 stream 的...