如何将字符串分解为字符数组,以便我可以单独分析和处理字符串中的每个字母?
示例类型代码,而我将是每个字母......
int
main(int argc, char *argv[])
{
printf("what is the string?: ");
string s = GetString();
for(int i = 0; i<strlen(s); i++)
printf("s[i]");
return(0);
}
如何将字符串分解为字符数组,以便我可以单独分析和处理字符串中的每个字母?
示例类型代码,而我将是每个字母......
int
main(int argc, char *argv[])
{
printf("what is the string?: ");
string s = GetString();
for(int i = 0; i<strlen(s); i++)
printf("s[i]");
return(0);
}
字符串是一个字符数组(额外的“\0”是数组中的最后一个元素)。
#define MAXLEN 80
int
main(int argc, char *argv[])
{
char buf[MAXLEN];
printf("what is the string?: ");
fgets (buf, MAXLEN, stdin);
for(int i = 0; i<strlen(buff); i++)
printf("buff[%d]: %c\n", i, buf[i]);
return(0);
}
===== 再举一个例子 =====
#include <stdio.h>
#include <string.h>
int
main (int argc, char *argv[])
{
int i;
char string[] = "ABC";
for (i=0; i < strlen (string); i++) {
printf ("%c\n", string[i]);
}
return 0;
}
样品输出:
A
B
C
字符串已经是一个字符数组,并且已经可以这样处理。您可以对数组执行的任何操作都可以对字符串执行,因此最好保持简单并仅使用数组。除非你有一些你没有提到的原因,但我想不出一个。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef char* string;
//input string from console stdin
string GetString(){
char buff[1024];
int len;
fgets(buff, sizeof(buff), stdin);
len = strlen(buff);
if(buff[len-1] == '\n')
buff[len-1]='\0';
return strdup(buff);
}
int
main(int argc, char *argv[])
{
printf("what is the string?: ");
string s = GetString();
for(int i = 0; i<strlen(s); i++)
printf("s[%d]:%c\n", i, s[i]);
char ca[strlen(s)+1];
for(int i = 0; i<=strlen(s); i++)
ca[i]=s[i];
for(int i = 0; i<strlen(s); i++)
printf("ca[%d]:%c\n", i, ca[i]);
free(s);
return(0);
}
/*
what is the string?: test
s[0]:t
s[1]:e
s[2]:s
s[3]:t
ca[0]:t
ca[1]:e
ca[2]:s
ca[3]:t
*/
在 c 中,字符串是一个字符数组。