Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
6年前关闭。
输出为:
我不知道怎么了
当我尝试运行它时
它根本不响应。
使用malloc分配内存
或将字符串数组传递给函数
并用作
或开发类似的就地算法
这将仅保留字母字符。
希望对您有帮助。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
6年前关闭。
#include<stdio.h>
#include<string.h>
#include<conio.h>
char *alphabetic (const char *s)
{
char *a=(void *)0;
int len,i=0,j=0;
len=strlen(s);
for(i=0;i<len;i++)
{
if((s[i]>=65))
{
if(s[i]<=90)
{
a[j]=s[i];
j++;
}
}
else if((s[i]>=97))
{
if((s[i]<=122))
{
a[j]=s[i];
j++;
}
}
}
return (char *)a;
}
int main (void)
{
char *a, *b, *c;
a = alphabetic ("Ready... aim... fire!");
printf ("%s\n", a);
free(a);
getch();
return 0;
}
输出为:
Readyaimfire
我不知道怎么了
当我尝试运行它时
它根本不响应。
最佳答案
您正在访问NULL
指针。您用0 in初始化a
char *a=(void *)0;
使用malloc分配内存
char *a = (char *)malloc(number_of_chars+1); /*1 for NULL character.*/
或将字符串数组传递给函数
char *alphabetic (const char *s, char *a)
并用作
char a[NUMBEROFCHARS];
alphabetic("Your string..", a);
或开发类似的就地算法
int j = 0; /*Insertion position.*/
for(i = 0; i<len; ++i)
{
if(isalpha(s[i])) {
s[j] = s[i];
++j;
}
}
这将仅保留字母字符。
希望对您有帮助。
关于c - 我需要输入一个字符串,仅返回c中的字母,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19992956/