如何将字符串分解为字符数组,以便我可以单独分析并处理字符串中的每个字母?
示例类型代码,而我将是每个字母......
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 :(得分:2)
字符串是一个字符数组(额外的“\ 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
答案 1 :(得分:0)
在c中,字符串是一个字符数组。
答案 2 :(得分:0)
字符串已经是一个字符数组,可以用这种方式处理。您可以使用字符串对数组执行任何操作,因此最好保持简单并只使用数组。除非你有一些你没有提到的理由,但我想不出一个。
答案 3 :(得分:0)
#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
*/