我已经学会了如何处理除字符串之外的所有数据类型。那么,任何人都可以帮我解决这些问题吗?
答案 0 :(得分:3)
您可以将字符串定义为字符数组或指向char的指针,字符串以null结尾(0字节)
示例:
char c[]="abcd";
char c1[5]="abcd";
char c2[]={'a','b','c','d','\0'};
char c3[5]={'a','b','c','d','\0'};
char *c4="abcd";
答案 1 :(得分:3)
如果你熟悉C中数组的概念,那么C中的一个字符串就是char
s的数组 - 最后有一个特殊值\0
,标志着它的结束。 e.g。
char s[] = "Hello";
它将存储在内存中:
+------------------------------------+
| 'H' | 'e' | 'l' | 'l' | 'o' | '\0' |
+------------------------------------+
有关详细信息,您确实可以阅读一些参考资料,例如one。
答案 2 :(得分:2)
'\0'
结尾的字符数组。声明:char S[array_size];
字符串输入/输出:
scanf("%s",S);
printf("%s",S);
string.h
:字符串操作函数的集合
示例代码:
#include<stdio.h>
#include<string.h>
#define MAX_STRING_LEN 80
int main() {
/* strings are array of characters
* terminated by the NULL character
* which is different from '0' */
char S[MAX_STRING_LEN];
int l, i;
S[0] = 'a';
S[1] = 'b';
S[2] = 'c';
S[3] = 'd';
S[4] = 'e';
S[5] = 'g';
S[6] = '0';
S[7] = 0;
l = strlen(S);
printf("S:\t%s\n",S);
printf("length:\t%d\n",l);
/* print characters in S */
printf("forward\n");
for (i = 0; i < l; ++i)
printf("A[%d] = %c\n",i,S[i]);
/* print characters in S backwards */
printf("\nbackward\n");
for (i = l-1; i >= 0; --i)
printf("A[%d] = %c\n",i,S[i]);
}
答案 3 :(得分:0)
在此声明中
public class School
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int SchoolID { get; set; }
public string DayEvent { get; set; }
public string DayNote { get; set; }
// ...
}
有5个初始值设定项,但数组char surnm[4] = {'P', 'i', 'n', 'e', '\0'};
中只有4个元素。因此,数组不包含字符串,因为它不包含终止零。你应该写
surnm
或
char surnm[5] = {'P', 'i', 'n', 'e', '\0'};
或
char surnm[] = {'P', 'i', 'n', 'e', '\0'};
或
char surnm[5] = { "Pine" };
或
char surnm[5] = "Pine";
或
char surnm[] = { "Pine" };